/** * 獲取map中第一個非空數據值 * * @param <K> Key的類型 * @param <V> Value的類型 * @param map 數據源 * @return 返回的值 */ public static <K, V> V getFirstNotNull(Map<K, V> map) { V obj = null; for (Map.Entry<K, V> entry : map.entrySet()) { obj = entry.getValue(); if (obj != null) { break; } } return obj; }
/*** * set中size最小的一組數據 * @param testSet 傳入的數據源set集合(類型爲 Set<Map<String, String>>) * @return set中size最小的一組數據 */ public static Map getMinSize(Set testSet){ List list = new ArrayList(cpuSet); Map map = new HashMap(); for (int j = 0; j < list.size(); j++) { Map p = (Map) list.get(j); map.put(p.size(),j);//把集合size與下標放入map中 } Map<String,Integer> sortedMapByKey = new TreeMap<String,Integer>();//利用treemap進行排序 sortedMapByKey.putAll(map); Integer firstNotNull = getFirstNotNull(sortedMapByKey);//獲取排序後map第一個值 即下標 Map mapInfo= (Map) list.get(firstNotNull);//經過下表獲取具體集合 return mapInfo; }
//獲取map鍵 Test爲想要獲取鍵的map集合 AbstractSet<String> set = (AbstractSet<String>) Test.keySet(); for (String key : set) { System.out.println(key+"-----"+minSize.get(key)); }