我有两个包含相同类型对象的地图:
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”中的所有值。
是什么fastest进行此操作的方法?
Thanks
编辑:比较是通过 id 完成的。因此,如果两个 TaskJSO 具有相同的 id(equals 方法被重写),则它们被视为相等。
我的目的是想知道从性能的角度来看哪种操作是最快的。例如,如果我在地图中进行“比较”(按照彼得的建议),有什么区别吗:
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());