Map의 메서드의 사용법에 대해 자주 헷갈리고 있는 나를 발견하면서 앞으로도 헷갈릴 때 두고두고 보기 위해 작성해봅니다!
getOrDefault
구현 코드
default V getOrDefault(Object key, V defaultValue) {
V v;
return (((v = get(key)) != null) || containsKey(key))
? v
: defaultValue;
}
- 메서드 이름에서 알 수 있듯이 해당하는 key의 value를 가져오거나, 만약 map에 해당하는 key가 없다면 defaultValue를 리턴하는 메서드이다.
사용 예시
아래는 모든 참가자들을 map에 저장하고 모든 완주자에 대해 map에서 제거하여 완주하지 못한 참가자들을 구하는 코드이다.
HashMap<String, Integer> map = new HashMap<>();
for (String player :participant) {
map.put(player, map.getOrDefault(player, 0) + 1);
}
for (String player :completion) {
map.put(player, map.get(player) - 1);
}
getOrDefault() 메서드를 통해 동명이인이 들어왔을 경우를 처리해주었다.
merge
'JAVA 🎻' 카테고리의 다른 글
Collection과 Collections의 차이 (2) | 2024.03.17 |
---|---|
[Java] StackTrace란 (0) | 2023.10.12 |
Function Interface과 Lambda Expression (0) | 2023.08.17 |
[JAVA] Reactive Streams, Back Pressure란? (0) | 2023.08.05 |
[JAVA] JDBC란? (0) | 2023.06.04 |