在Java中合并类似的HashMap

兰吉斯·冈帕

HashMap<String, String> hashMap1

       name : ranjith
       city : san jose

HashMap<String, String> hashMap2

       name : sandeep
       city : san jose

HashMap<String, String> hashMap3

       name : rohith
       city : san jose

我想将上面的哈希图转换为HashMap<String, List<String>> hashMap4

      name : [ranjith, sandeep, rohith]
      city : [san jose]

要进行合并,有任何直接的方法,或者我应该遍历每个元素,找到相似之处,然后合并

shmosel

这将收集到Map<String, Set<String>>,这似乎比列表更合适,因为您正在收集唯一值。它使用的静态导入java.util.stream.Collectors.*

Map<String, Set<String>> hashMap4 = Stream.of(hashMap1, hashMap2, hashMap3)
        .map(Map::entrySet)
        .flatMap(Set::stream)
        .collect(groupingBy(Map.Entry::getKey, mapping(Map.Entry::getValue, toSet())));

这是Java 7版本。虽然不那么简洁明了,但仍然不太复杂。

Map<String, Set<String>> hashMap4 = new HashMap<>();
for (Map<String, String> map : Arrays.asList(hashMap1, hashMap2, hashMap3)) {
    for (Map.Entry<String, String> entry : map.entrySet()) {
        String key = entry.getKey();
        Set<String> values = hashMap4.get(key);
        if (values == null) {
            hashMap4.put(key, values = new HashSet<>());
        }
        values.add(entry.getValue());
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结合Java中类似的if语句

来自分类Dev

合并Haskell中类似的列表列表

来自分类Dev

在Java流中合并相似的元素

来自分类Dev

Java中是否有任何类似的libjpeg API?

来自分类Dev

类似的Java函数,例如javascript中的atob

来自分类Dev

Java中是否有PushSharp类似的应用程序?

来自分类Dev

如何合并类似的js函数?

来自分类Dev

合并两个类似的收藏

来自分类Dev

分组和合并类似的javascript对象

来自分类Dev

NSFetchedResultsController不合并类似的部分

来自分类Dev

将类似的连续观察合并为R中的一个观察

来自分类Dev

将类似的数组信息合并到一个Json中

来自分类Dev

在SQL中合并类似的行并聚合一些值

来自分类Dev

是否可以在locust.io的WEB输出数据中合并类似的GET请求?

来自分类Dev

使用HashMap或类似的东西来存储对象列表

来自分类Dev

使用Array.reduce(}合并类似的对象和值

来自分类Dev

如何合并类似的任务以减少总工作量?

来自分类Dev

合并这些类似的preg_replace regex变体

来自分类Dev

合并几个类似的重复mysql SELECT语句

来自分类Dev

在Perl中处理类似的检查

来自分类Dev

在Python中设置多个类似的变量

来自分类Dev

在mysql中获取类似的行数

来自分类Dev

从列表中删除类似的项目

来自分类Dev

在Scala中折叠类似的案例陈述

来自分类Dev

在Drools中获取类似的对象

来自分类Dev

Python从列表中删除类似的项目

来自分类Dev

在Drools中获取类似的对象

来自分类Dev

终端中类似的命令建议

来自分类Dev

从列表中删除类似的项目