關於 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));
}
相關文章
相關標籤/搜索