Kako proći kroz sve vrednosti u Map?
sobes.tech АИ
Одговор од АИ
Постоји неколико начина за итерацију кроз Map у Јави.
-
Коришћење
entrySet(): Најуниверзалнији начин, враћаSetпарова кључ-вредност (Map.Entry). Може се прећи преко њега коришћењем итератора или за-језика.// Коришћење за-језика са entrySet() for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); // Обрада кључа и вредности } -
Коришћење
keySet(): ВраћаSetсвих кључева уMap. Затим се може добити вредност по сваком кључу.// Коришћење за-језика са keySet() for (String key : map.keySet()) { Integer value = map.get(key); // Обрада кључа и вредности } -
Коришћење
values(): ВраћаCollectionсвих вредности уMap. Овај начин је користан када су потребне само вредности.// Коришћење за-језика са values() for (Integer value : map.values()) { // Обрада вредности } -
Коришћење итератора: За
entrySet(),keySet()иvalues()може се користити итератор.// Коришћење итератора са 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(); // Обрада кључа и вредности } -
Коришћење Stream API (Java 8+): Савременији приступ, пружа моћне алате за обраду података.
// Итерација коришћењем forEach() и Stream entrySet() map.entrySet().stream().forEach(entry -> { String key = entry.getKey(); Integer value = entry.getValue(); // Обрада кључа и вредности }); // Итерација коришћењем forEach() и Stream keySet() map.keySet().stream().forEach(key -> { Integer value = map.get(key); // Обрада кључа и вредности });
Избор начина зависи од конкретног задатка и преференција. entrySet() често представља најефикаснији начин, јер избегава дупло претраживање вредности по кључу (као у случају са keySet() и map.get()). Stream API је погодан за сложеније операције.