合并两个地图

戴夫:

我有两个键为Strings且值为的映射Set<MyObject>给定两个Maps,最简单的方法是将它们合并,以便如果两个键相同,则值是两个集合的并集。您可以假设值永远不会为null,并且如果有用的话,我们可以将它们Map设为SortedMaps。

罗宾:

我们在谈论HashMap实例。在这种情况下,查找值为O(1),因此您可以获取一个映射,迭代该映射的条目,查看另一个映射是否包含该键。如果没有,只需添加设置。如果包含密钥,则将两个集合集(通过一个集合的所有元素添加到另一集合中)

为了说明一些代码,在我的IDE中使用Set进行自动补全的地方

Map<String, Set<Double>> firstMap = new HashMap<String, Set<Double>>(  );
Map<String, Set<Double>> secondMap = new HashMap<String, Set<Double>>(  );
Set<Map.Entry<String, Set<Double>>> entries = firstMap.entrySet();
for ( Map.Entry<String, Set<Double>> entry : entries ) {
  Set<Double> secondMapValue = secondMap.get( entry.getKey() );
  if ( secondMapValue == null ) {
    secondMap.put( entry.getKey(), entry.getValue() );
  }
  else {
    secondMapValue.addAll( entry.getValue() );
  }
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章