Ce face Map.put
map.put(cheie, valoare) leagă cheia de valoare. Dacă cheia nu exista, perechea este adăugată și metoda returnează null. Dacă exista, valoarea veche este înlocuită și metoda o returnează pe cea veche.
map.putAll(altul) face put pentru fiecare pereche din altul: cheile noi se adaugă, cele comune primesc valoarea din altul. Dacă vrei să nu suprascrii valori existente, folosește putIfAbsent.
Parametri
| Parametru | Descriere |
|---|---|
key |
Cheia. |
value |
Valoarea asociată. |
m |
Map-ul din care se copiază perechile. |
Ce returnează
put: valoarea veche sau null. putAll: nimic.
Exemple
Exemplul 1: Actualizarea stocului
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
Map<String, Integer> stoc = new TreeMap<>();
System.out.println(stoc.put("mere", 40));
System.out.println(stoc.put("pere", 25));
System.out.println(stoc.put("mere", 35)); // înlocuiește, returnează 40
System.out.println(stoc);
}
}
Rezultat
null
null
40
{mere=35, pere=25}
Exemplul 2: Setări implicite peste care pun setările utilizatorului
Întâi setările implicite, apoi putAll cu ale utilizatorului: valorile lui le înlocuiesc pe cele comune.
import java.util.LinkedHashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> setari = new LinkedHashMap<>();
setari.put("limbă", "ro");
setari.put("temă", "luminoasă");
setari.put("notificări", "da");
Map<String, String> aleUtilizatorului = new LinkedHashMap<>();
aleUtilizatorului.put("temă", "întunecată");
aleUtilizatorului.put("font", "mare");
setari.putAll(aleUtilizatorului);
System.out.println(setari);
}
}
Rezultat
{limbă=ro, temă=întunecată, notificări=da, font=mare}
Greșeli frecvente
- Crezi că
putpe o cheie existentă adaugă a doua valoare. Un map ține o singură valoare pe cheie; pentru mai multe, foloseșteMap<K, List<V>>cucomputeIfAbsent. - Folosești
putpe unMap.of(...). Map-ul este nemodificabil și apareUnsupportedOperationException.
Comenzi înrudite
Map: Interfața pentru dicționare: perechi cheie → valoare, în care găsești rapid valoarea după cheie. Cheile sunt unice.Map.get: get returnează valoarea unei chei sau null dacă lipsește; getOrDefault returnează o valoare de rezervă în loc de null.Map.putIfAbsent: Pune valoarea doar dacă cheia lipsește (sau are null). Nu suprascrie o valoare existentă; returnează valoarea care era deja.Map.merge: Pune valoarea dacă cheia lipsește; dacă există, combină valoarea veche cu cea nouă (de exemplu le adună). Ideal pentru numărători și totaluri.Map.replace: replace schimbă valoarea unei chei doar dacă cheia există; replaceAll recalculează toate valorile cu o funcție.