1. 개요
이 빠른 자습서에서는 Java에서 맵 항목을 반복하는 다양한 방법을 살펴 보겠습니다.
간단히 말해서 keySet () , valueSet () 또는 entrySet ()을 사용하여 Map 의 내용을 추출 할 수 있습니다 . 이들은 모두 세트이므로 유사한 반복 원칙이 모두에 적용됩니다.
Map.entrySet의 API 요소로부터되는Map의 컬렉션 뷰를 반환 Map 클래스를. 단일 맵 항목에 대한 참조를 얻는 유일한 방법은이 콜렉션보기의 반복자에서 얻는 것입니다.
T 그는 entry.getKey () 키를 반환하고 entry.getValue ()는 해당 값을 반환합니다.
이들 중 몇 가지를 자세히 살펴 보겠습니다.
2. EntrySet 및 for 루프
먼저 엔트리 세트를 사용하여 맵 을 반복 하는 방법을 살펴 보겠습니다 .
public void iterateUsingEntrySet(Map<String, Integer> map) {
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
여기서 우리는 맵을 항목 집합으로 변환 한 다음 고전적인 for-each 접근 방식을 사용하여 반복합니다.
getKey () 를 호출하여 각 항목의 키에 액세스 할 수 있으며 getValue () 를 호출하여 각 항목의 값에 액세스 할 수 있습니다 .
3. 반복자 와 EntrySet
또 다른 접근 방식은 항목 집합을 얻고 반복자를 사용하여 반복을 수행하는 것입니다 .
public void iterateUsingIteratorAndEntry(Map<String, Integer> map) {
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
entrySet () 의 iterator () API를 사용하여 Iterator 인스턴스를 얻는 방법에 주목하십시오 . 그런 다음 평소와 같이 iterator.next () 를 사용하여 반복기를 반복합니다.
4. Lambda로
이제이 반복하는 방법을 볼 수 있도록 Map를 사용하여 람다 식을.
Java 8의 다른 대부분과 마찬가지로 이것은 대안보다 훨씬 간단합니다. 우리는 단지의 사용을 만들거야 대해 forEach () 메서드를 :
public void iterateUsingLambda(Map<String, Integer> map) {
map.forEach((k, v) -> System.out.println((k + ":" + v)));
}
이 경우 맵을 항목 집합으로 변환 할 필요가 없습니다. 람다 식에 대해 자세히 알아 보려면 여기에서 시작할 수 있습니다 .
5. 스트림 API
Stream API는 Java 8의 주요 기능 중 하나입니다.이 기능을 사용하여 맵 을 반복 할 수도 있지만 이전 예제에서와 같이 먼저 항목 집합을 가져와야합니다.
public void iterateUsingStreamAPI(Map<String, Integer> map) {
map.entrySet().stream()
// ...
.forEach(e -> System.out.println(e.getKey() + ":" + e.getValue()));
}
추가 스트림 처리를 계획 할 때 사용해야합니다 . 그렇지 않으면 이전에 설명한대로 단순한 forEach () 입니다.
Stream API 에 대해 자세히 알아 보려면 이 문서를 확인 하세요 .
6. 결론
이 기사에서는 맵 항목을 반복하는 단순하지만 중요한 작업에 중점을 두었습니다.
Java 8에서만 사용할 수있는 두 가지 메서드, 즉 Lambda 표현식과 Stream API를 살펴 보았습니다 .
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/java-iterate-map
'Java' 카테고리의 다른 글
코어 자바의 동작 패턴 (0) | 2021.03.14 |
---|---|
Spring 이메일 연동방법 (0) | 2021.03.13 |
Spring과 CORS (0) | 2021.03.13 |
Spring 프로필(Profiles) 설정방법(예제) (0) | 2021.03.13 |
Spring REST API + OAuth2 + Angular (0) | 2021.03.13 |