Backend/☕️ Java
Map 타입의 forEach (feat. Biconsumer)
Hugehoo
2023. 1. 31. 09:51
Biconsumer 공부하다가 Map 타입에 forEach 를 실행시키면 어떤 인자가 나오는지 알게 됐다.
보통 Map 타입을 iterable 하게 사용하는 경우엔, 아래처럼 향상된 for 문을 작성했다.
void 테스트() {
Map<String, Integer> map = new HashMap<>();
for (String s : map.keySet()) {
System.out.println("s = " + s);
}
for (Integer value : map.values()) {
System.out.println("value = " + value);
}
for (Map.Entry<String, Integer> stringIntegerEntry : map.entrySet()) {
System.out.println("stringIntegerEntry.getKey() = " + stringIntegerEntry.getKey());
System.out.println("stringIntegerEntry.getValue() = " + stringIntegerEntry.getValue());
}
}
그러다 방금 biconsumer 를 조사하다 알게된 Map 타입의 forEach()
void 테스트() {
Map<String, Integer> map = new HashMap<>();
BiConsumer<String, Integer> biConsumer =
(key, value) -> System.out.println("key: " + key + ", value: " + value);
map.forEach(biConsumer);
}
map 변수에서 forEach를 호출할 때 인자로 biConsumer를 사용할 수 있다.
biConsumer 는 2개의 인자를 받는 함수형 인터페이스
로. map 변수로부터 2개의 인자를 받는다.
2개의 인자는 예상하신대로 key 와 value
즉 이렇게 풀어 쓸 수 있다.
map.forEach((k, v) -> System.out.println("key: " + k + ", value: " + v));
정리하고 보니 썩 대단한 내용은 아니네 ㅎ
그럼 마저 Biconsumer 공부하러 이만