栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

合并地图 Java 8流

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

合并地图 Java 8流

您可以通过遍历中的所有条目

mapAdded
并将它们合并到中来实现此目的
mapGlobal

下面

mapAdded
通过调用
forEach(action)
操作消耗每个条目的键和值的位置来遍历的条目。对于每个条目,我们叫
merge(key,value,remappingFunction)
mapGlobal
:这将要么创建键下的条目
k
和值
v
如果该键不存在,或者它会调用给定的重新映射功能,如果他们已经存在。此函数将2个列表合并,在这种情况下,首先将其添加到中
TreeSet
以确保元素唯一和排序,然后将其转换回列表:

mapAdded.forEach((k, v) -> mapGlobal.merge(k, v, (v1, v2) -> {    Set<String> set = new TreeSet<>(v1);    set.addAll(v2);    return new ArrayList<>(set);}));

如果您想并行运行它,可以通过获取

entrySet()
并调用
parallelStream()
它来创建一个Stream管道。但随后,您需要确保使用支持并发的映射
mapGlobal
,例如
ConcurrentHashMap

ConcurrentMap<String, List<String>> mapGlobal = new ConcurrentHashMap<>();// ...mapAdded.entrySet().parallelStream().forEach(e -> mapGlobal.merge(e.getKey(), e.getValue(), (v1, v2) -> {    Set<String> set = new TreeSet<>(v1);    set.addAll(v2);    return new ArrayList<>(set);}));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号