合并兩個Map

/**
mergeFunction 如果多個map的key一樣怎么處理value數據 
maps 需要合并的map 可以是多個
*/
public static <K, E, V extends Collection<E>> Map<K, V> mergeMap(BinaryOperator<V> mergeFunction, Map<K, V> ...maps) {
        return Stream.of(maps)
                .flatMap(map -> map.entrySet()
                        .stream())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, mergeFunction));
    }

/**
maps需要合并的map; key是long型數據 value是Set類型數據。如果key重復那么value合并(set的合集)
*/
    public static <V> Map<Long, Set<V>> mergeMapValueSetAdd(Map<Long, Set<V>>... maps) {
        return mergeMap((v1, v2) -> {
            v1.addAll(v2);
            return v1;
        }, maps);
    }
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容