Этот фрагмент кода показывает, как выполнить цикл Map
в Java.
Mapmap = new HashMap<>(); map.put("1", "Jan"); map.put("2", "Feb"); map.put("3", "Mar"); // classic way, loop a Map for (Map.Entry entry : map.entrySet()) { System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue()); } //Java 8 only, forEach and Lambda map.forEach((k,v)->System.out.println("Key : " + k + " Value : " + v));
Выход
Key : 1 Value :Jan Key : 2 Value :Feb Key : 3 Value :Mar Key : 1 Value :Jan Key : 2 Value :Feb Key : 3 Value :Mar
1. Примеры
Различные способы зацикливания карты
package com.mkyong; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class LoopMap { public static void main(String[] args) { // initial a Map Mapmap = new HashMap<>(); map.put("1", "Jan"); map.put("2", "Feb"); map.put("3", "Mar"); map.put("4", "Apr"); map.put("5", "May"); map.put("6", "Jun"); // Standard classic way, recommend! System.out.println("\nExample 1..."); for (Map.Entry entry : map.entrySet()) { System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue()); } // Java 8, forEach and Lambda. recommend! System.out.println("\nExample 2..."); map.forEach((k, v) -> System.out.println("Key : " + k + " Value : " + v)); // Map -> Set -> Iterator -> Map.Entry -> troublesome, don't use, just for fun System.out.println("\nExample 3..."); Iterator > iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); System.out.println("Key : " + entry.getKey() + " Value :" + entry.getValue()); } // weired, but works anyway, don't use, just for fun System.out.println("\nExample 4..."); for (Object key : map.keySet()) { System.out.println("Key : " + key.toString() + " Value : " + map.get(key)); } } }
Выход
Example 1... Key : 1 Value : Jan Key : 2 Value : Feb Key : 3 Value : Mar Key : 4 Value : Apr Key : 5 Value : May Key : 6 Value : Jun Example 2... Key : 1 Value : Jan Key : 2 Value : Feb Key : 3 Value : Mar Key : 4 Value : Apr Key : 5 Value : May Key : 6 Value : Jun Example 3... Key : 1 Value :Jan Key : 2 Value :Feb Key : 3 Value :Mar Key : 4 Value :Apr Key : 5 Value :May Key : 6 Value :Jun Example 4... Key : 1 Value : Jan Key : 2 Value : Feb Key : 3 Value : Mar Key : 4 Value : Apr Key : 5 Value : May Key : 6 Value : Jun
2. Фильтрация карт
В Java 8 вы можете преобразовать Карту
в Поток
и отфильтровать его следующим образом:
map.entrySet().stream() .filter(x -> "Jan".equals(x.getValue())) .forEach( x -> System.out.println("Key : " + x.getKey() + " Value : " + x.getValue()));
Выход
Key : 1 Value : Jan
Рекомендации
- java.использование. Итератор JavaDoc
- java.использование. Карта JavaDoc
- Java 8 Примеры для каждого
- Перебор коллекций в Java 8
Оригинал: “https://mkyong.com/java/how-to-loop-a-map-in-java/”