Tengo dos los mapas que contienen el mismo tipo de objetos:Unión de dos o más (hash) mapea
Map<String, TaskJSO> a = new HashMap<String, TaskJSO>();
Map<String, TaskJSO> b = new HashMap<String, TaskJSO>();
public class TaskJSO { String id; }
Las claves mapa son las propiedades "ID".
a.put(taskJSO.getId(), taskJSO);
Quiero obtener una lista con: todos los valores en "b" Mapa + todos los valores en "Asignar una" que no están en "Mapa B".
¿Cuál es la forma más fácil de realizar esta operación?
Gracias
EDIT: El comparaison se realiza por id. Por lo tanto, dos TaskJSO se consideran iguales si tienen la misma identificación (el método igual se anula).
Mi intención es saber cuál es la forma más rápida de realizar esta operación desde el punto de vista del rendimiento. Por ejemplo, ¿hay alguna diferencia si lo hago el "comparaison" en un mapa (como se sugiere por Peter):
Map<String, TaskJSO> ab = new HashMap<String, TaskJSO>(a);
ab.putAll(b);
ab.values()
o si por el contrario utilizo un conjunto (como se sugiere en Nishant):
Set s = new Hashset();
s.addAll(a.values());
s.addAll(b.values());
Probablemente depende de la implementación de Java que esté utilizando. – Thomas
¿Puede un mapa "id" con una 'TaskJSO' en el Mapa' a' y una 'TaskJSO' diferente en el Mapa' b'? – dkarp
@dkarp sí, un mismo ID puede asignarse a dos TaskJSO diferentes en el Mapa ay el Mapa b (almacenan diferentes versiones de una misma entidad) –