Ho due mappe che contengono lo stesso tipo di oggetti:Unione di due o più (hash) mappe
Map<String, TaskJSO> a = new HashMap<String, TaskJSO>();
Map<String, TaskJSO> b = new HashMap<String, TaskJSO>();
public class TaskJSO { String id; }
Le chiavi della mappa sono le proprietà "ID".
a.put(taskJSO.getId(), taskJSO);
voglio ottenere un elenco con: tutti i valori nella "mappa B" + tutti i valori "Mappare" che non sono in "mappa B".
Che cos'è il modo più veloce per eseguire questa operazione?
Grazie
EDIT: Il comparaison è fatto da id. Quindi, due TaskJSO sono considerati uguali se hanno lo stesso id (il metodo equals è sovrascritto).
La mia intenzione è sapere qual è il modo più veloce per eseguire questa operazione dal punto di vista delle prestazioni. Per esempio, c'è qualche differenza se faccio il "comparaison" in una mappa (come suggerito da Peter):
Map<String, TaskJSO> ab = new HashMap<String, TaskJSO>(a);
ab.putAll(b);
ab.values()
o se invece io uso un set (come suggerito da Nishant):
Set s = new Hashset();
s.addAll(a.values());
s.addAll(b.values());
Probabilmente dipende dall'implementazione Java che si sta utilizzando. – Thomas
Una mappa 'id' su un' TaskJSO' in Map 'a' e un diverso' TaskJSO' in Map 'b'? – dkarp
@dkarp si, uno stesso id può mappare a due diversi TaskJSO in Map a e Map b (memorizzano diverse versioni di una stessa entità) –