Java Language Aggiungi più oggetti


Esempio

Possiamo usare V put(K key,V value) :

Associa il valore specificato con la chiave specificata in questa mappa (operazione opzionale). Se la mappa in precedenza conteneva un mapping per la chiave, il vecchio valore viene sostituito dal valore specificato.

String currentVal;
Map<Integer, String> map = new TreeMap<>();
currentVal = map.put(1, "First element.");
System.out.println(currentVal);// Will print null
currentVal = map.put(2, "Second element.");
System.out.println(currentVal); // Will print null yet again    
currentVal = map.put(2, "This will replace 'Second element'");
System.out.println(currentVal); // will print Second element.
System.out.println(map.size()); // Will print 2 as key having
// value 2 was replaced.

Map<Integer, String> map2 = new HashMap<>();
map2.put(2, "Element 2");
map2.put(3, "Element 3");

map.putAll(map2);

System.out.println(map.size());  

Produzione:

3

Per aggiungere molti elementi puoi usare una classe interna come questa:

Map<Integer, String> map = new HashMap<>() {{
    // This is now an anonymous inner class with an unnamed instance constructor
    put(5, "high");
    put(4, "low");
    put(1, "too slow");
}};

Tieni presente che la creazione di una classe interna anonima non è sempre efficiente e può portare a perdite di memoria, pertanto, quando possibile, utilizzare invece un blocco di inizializzazione:

static Map<Integer, String> map = new HashMap<>();

static {
    // Now no inner classes are created so we can avoid memory leaks
    put(5, "high");
    put(4, "low");
    put(1, "too slow");
}

L'esempio sopra rende la mappa statica. Può anche essere usato in un contesto non statico rimuovendo tutte le occorrenze di static .

Oltre a ciò la maggior parte delle implementazioni supporta putAll , che può aggiungere tutte le voci in una mappa a un'altra in questo modo:

another.putAll(one);