合并两个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);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容