У меня есть две Карты, которые содержат объекты одного типа:
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».
Каков самый быстрый способ выполнения этой операции?
Спасибо
РЕДАКТИРОВАТЬ: Сравнение осуществляется по id. Таким образом, два 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());