Java에서 맵 반복

1. 개요

이 빠른 기사에서는 Java에서 맵 항목을 반복하는 다양한 방법을 살펴 보겠습니다.

간단히 말해서, 우리는 keySet (), valueSet () 또는 entrySet ()을 사용하여 Map 의 내용을 추출 할 수 있습니다 . 그것들은 모두 세트이기 때문에 유사한 반복 원칙이 모두에 적용됩니다.

Map.entrySet의 API 요소로부터되는지도의 컬렉션 뷰를 반환 지도 클래스를. 단일 맵 항목에 대한 참조를 얻는 유일한 방법은이 콜렉션보기의 반복자에서 얻는 것입니다.

T 그는 entry.getKey는 () 키와 반환 entry.getValue ()는 해당 값을 반환합니다.

이들 중 몇 가지를 살펴 보겠습니다.

2. EntrySetfor 루프

먼저 엔트리 세트를 사용하여 반복 하는 방법을 살펴 보겠습니다 .

public void iterateUsingEntrySet(Map map) { for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue()); } }

여기에서는 맵을 항목 집합으로 변환 한 다음 고전적인 for-each 접근 방식을 사용하여 반복합니다.

getKey () 를 호출하여 각 항목의 키에 액세스 할 수 있으며 getValue () 를 호출하여 각 항목의 값에 액세스 할 수 있습니다 .

3. 반복자EntrySet

또 다른 접근 방식은 항목 집합을 얻고 반복자를 사용하여 반복을 수행하는 것입니다 .

public void iterateUsingIteratorAndEntry(Map map) { Iterator
    
      iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); System.out.println(entry.getKey() + ":" + entry.getValue()); } }
    

entrySet ()iterator () API를 사용하여 Iterator 인스턴스를 얻는 방법에 주목하십시오 . 그런 다음 평소와 같이 iterator.next () 를 사용하여 반복기를 반복합니다.

4. Lambda로

의 지금 반복하는 방법을 살펴 보자 지도를 사용하여 람다 식을.

Java 8의 다른 대부분과 마찬가지로 이것은 대안보다 훨씬 간단합니다. forEach () 메소드를 사용할 것입니다 .

public void iterateUsingLambda(Map map) { map.forEach((k, v) -> System.out.println((k + ":" + v))); } 

이 경우 맵을 항목 집합으로 변환 할 필요가 없습니다. 람다 식에 대해 자세히 알아 보려면 여기에서 시작할 수 있습니다.

5. 스트림 API

Stream API는 Java 8 의 주요 기능 중 하나입니다 . 이 기능을 사용하여 을 반복 할 수도 있지만 이전 예제에서와 같이 먼저 항목 집합을 가져와야합니다.

public void iterateUsingStreamAPI(Map map) { map.entrySet().stream() // ... .forEach(e -> System.out.println(e.getKey() + ":" + e.getValue())); } 

추가 스트림 처리를 계획 할 때 사용해야합니다 . 그렇지 않으면 이전에 설명한 것처럼 간단한 forEach () 입니다.

Stream API 에 대해 자세히 알아 보려면 이 문서를 확인하세요.

6. 결론

이 튜토리얼에서는 맵의 항목을 반복하는 단순하지만 중요한 작업에 중점을 두었습니다.

Java 8에서만 사용할 수있는 두 가지 메서드, 즉 Lambda 표현식과 Stream API를 보았습니다 .

항상 그렇듯이이 기사의 코드 예제는 GitHub에서 찾을 수 있습니다.