У меня есть две карты, содержащие объекты одного и того же типа:
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);
Я хочу получить список со: всеми значениями в "Карта b" + все значения в «Карте a», которых нет на «Карте b».
Каков самый быстрый способ выполнения этой операции?
Спасибо
РЕДАКТИРОВАТЬ: сравнение выполняется по идентификатору . Итак, два TaskJSO считаются равными, если у них одинаковый идентификатор (метод equals переопределяется).
Я намерен узнать, какой способ выполнения этой операции является наиболее быстрым с точки зрения производительности. Например, есть ли разница, если я провожу «сравнение» на карте (как предлагает Питер):
Map<String, TaskJSO> ab = new HashMap<String, TaskJSO>(a);
ab.putAll(b);
ab.values()
или вместо этого я использую набор (как предлагает Нишант):
Set s = new Hashset();
s.addAll(a.values());
s.addAll(b.values());