Java判断Object对象是否为数组,
Java判断Object对象是否为集合,
Java判断数组是否包含某个值
Java获取Map对象指定的key值
================================
©Copyright 蕃薯耀 2021-07-02
https://www.cnblogs.com/fanshuyao/
一、Java判断Object对象是否为数组
public static String valueCast(Object value) { String valueString = ""; if(Arrays.isArray(value)) {//数组 //判断是否为数组(建议优先使用Arrays): //1:Arrays.isArray(value) //2:value.getClass().isArray() valueString = JsonUtil.obj2String(value); }else { valueString = String.valueOf(value); } return valueString; }
1、使用Arrays工具类(建议优先使用)
Arrays.isArray(value)
2、通过类反射
value.getClass().isArray()
二、Java判断Object对象是否为集合
1、判断是否为集合:object instanceof Collection
public static String valueCast(Object value) { String valueString = ""; if(value instanceof Collection) {//判断是否为集合 valueString = JsonUtil.obj2String(value); }else { valueString = String.valueOf(value); } return valueString; }
三、Java判断数组是否包含某个值
1、使用ArrayUtils工具类(优先使用)
import org.apache.commons.lang3.ArrayUtils;
ArrayUtils.contains(keys, key)
实际逻辑:
public static int indexOf(final Object[] array, final Object objectToFind, int startIndex) { if (array == null) { return INDEX_NOT_FOUND; } if (startIndex < 0) { startIndex = 0; } if (objectToFind == null) { for (int i = startIndex; i < array.length; i++) { if (array[i] == null) { return i; } } } else { for (int i = startIndex; i < array.length; i++) { if (objectToFind.equals(array[i])) { return i; } } } return INDEX_NOT_FOUND; }
2、转换成List集合(比较慢)
Arrays.asList(arr).contains(targetValue);
3、自己写循环判断
ArrayUtils.contains其实就是循环
四、Java获取Map对象指定的key值
1、根据指定的keys获取Map中的属性
/** * 根据指定的keys获取Map中的属性 * @param map * @param keys * @return */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static Map<String, Object> getMapByExistKeys(Map map, String[] keys) { if(map == null || map.isEmpty()) { return null; } if(keys == null || keys.length < 1) { return null; } Map<String, Object> resultMap = new LinkedHashMap<String, Object>(keys.length); Set<String> set = map.keySet(); for (String key : set) { if(ArrayUtils.contains(keys, key)) { resultMap.put(key, map.get(key)); } } return resultMap; }
2、排除指定的keys获取Map中的其它属性
/** * 排除指定的keys获取Map中的其它属性 * @param map * @param excludeKeys 排除的keys * @return */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static Map<String, Object> getMapByExcludeKeys(Map map, String[] excludeKeys) { if(map == null || map.isEmpty()) { return null; } Map<String, Object> resultMap = new LinkedHashMap<String, Object>(); Set<String> set = map.keySet(); for (String key : set) { if(ArrayUtils.contains(excludeKeys, key)) { continue; } resultMap.put(key, map.get(key)); } return resultMap; }
(时间宝贵,分享不易,捐赠回馈,^_^)
================================
©Copyright 蕃薯耀 2021-07-02
https://www.cnblogs.com/fanshuyao/