1. 程式人生 > 其它 >Java判斷Object物件是否為陣列,Java判斷Object物件是否為集合,Java判斷陣列是否包含某個值

Java判斷Object物件是否為陣列,Java判斷Object物件是否為集合,Java判斷陣列是否包含某個值

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/