两个或多个(哈希)映射的并集
2022-09-04 07:51:52
我有两个包含相同类型对象的地图:
Map<String, TaskJSO> a = new HashMap<String, TaskJSO>();
Map<String, TaskJSO> b = new HashMap<String, TaskJSO>();
public class TaskJSO { String id; }
映射键是“id”属性。
a.put(taskJSO.getId(), taskJSO);
我想获得一个列表:“Map b”中的所有值+“Map a”中不在“Map b”中的所有值。
执行此操作的最快方法是什么?
谢谢
编辑:比较是由id完成的。因此,如果两个 TaskJSO 具有相同的 id,则认为它们相等(等于方法被覆盖)。
我的目的是从性能的角度来看,知道哪种是执行此操作的最快方法。例如,如果我在地图中做“比较”有什么区别(如彼得所建议的那样):
Map<String, TaskJSO> ab = new HashMap<String, TaskJSO>(a);
ab.putAll(b);
ab.values()
或者如果我使用一个集合(如Nishant所建议):
Set s = new Hashset();
s.addAll(a.values());
s.addAll(b.values());