Cum să parcurgi toate valorile dintr-un Map?
sobes.tech AI
Răspuns de la AI
Există mai multe moduri de a itera peste un Map în Java.
-
Utilizarea
entrySet(): Cea mai versatilă metodă, returnează unSetde perechi cheie-valoare (Map.Entry). Poate fi parcurs atât cu un iterator, cât și cu un ciclu for-each.// Utilizarea for-each cu entrySet() for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); // Procesarea cheii și valorii } -
Utilizarea
keySet(): Returnează unSetal tuturor cheilor dinMap. Apoi, se poate obține valoarea pentru fiecare cheie.// Utilizarea for-each cu keySet() for (String key : map.keySet()) { Integer value = map.get(key); // Procesarea cheii și valorii } -
Utilizarea
values(): Returnează oCollectiona tuturor valorilor dinMap. Această metodă este utilă atunci când sunt necesare doar valorile.// Utilizarea for-each cu values() for (Integer value : map.values()) { // Procesarea valorii } -
Utilizarea unui iterator: Pentru
entrySet(),keySet()șivalues(), se poate folosi un iterator.// Utilizarea iteratorului cu entrySet() Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, Integer> entry = iterator.next(); String key = entry.getKey(); Integer value = entry.getValue(); // Procesarea cheii și valorii } -
Utilizarea API-ului Stream (Java 8+): O abordare mai modernă, care oferă instrumente puternice pentru procesarea datelor.
// Parcurgere cu forEach() și Stream pe entrySet() map.entrySet().stream().forEach(entry -> { String key = entry.getKey(); Integer value = entry.getValue(); // Procesarea cheii și valorii }); // Parcurgere cu forEach() și Stream pe keySet() map.keySet().stream().forEach(key -> { Integer value = map.get(key); // Procesarea cheii și valorii });
Alegerea metodei depinde de sarcina specifică și de preferințe. entrySet() este adesea cea mai eficientă, deoarece evită căutările duble ale valorii după cheie (ca în cazul keySet() și map.get()). API-ul Stream este convenabil pentru operații mai complexe.