/** * 获取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)); }