关于 map 集合的平常记录

/**
 * 获取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));
}
相关文章
相关标签/搜索