[JAVA] Map에 Key가 같으면 Value의 값 1 증가
2023. 5. 25. 23:30ㆍJAVA
코드
import java.util.HashMap;
import java.util.Map;
public class getOrDefaultEx {
public static void main(String[] args) {
String[] str = {"AB", "BC", "EF", "AB", "EF"};
Map<String , Integer> map = new HashMap<>();
for (String s : str) {
map.put(s, map.getOrDefault(s,0)+1);
}
System.out.println("map = " + map);
}
}
결과
map = {AB=2, BC=1, EF=2}
설명
getOrDefault 의 파라미터는 (Key, DefaultValue)이다.
getOrDefault(Key,DefaultValue) 이렇게 있을 때,
getOrDefault는 key를 검색하고 만약 키가 있다면 key 값을 반환, 없다면 DefaultValue를 반환한다.
그래서 위 코드로 보면 str 배열을 map에 넣을 때 처음에는 ket값에 AB를 넣어주고, value에 getOrDefault 를 넣었다.
이때 map에는 AB라는 키가 없으므로 DefaultValue값인 0을 반환한다.
그 뒤에 +1이 있으므로 최종 value의 값은 1이 된다.
이렇게 3번째 EF까지 진행 후 다시 AB가 나온다.
이때 map에는 이미 AB라는 키가 있으므로 value는 .getOrDefault 에서 AB키의 value를 반환한다.
getOrDefault 에서 반환한 value는 1이다.
그 뒤에 +1 이 있으므로 key는 AB에 value 값은 2가 된다. 그 뒤 EF도 마찬가지
'JAVA' 카테고리의 다른 글
[JAVA] List에 Stream으로 값 넣기 (0) | 2023.06.25 |
---|---|
[JAVA] JAVA String List를 String 배열로 변환 (0) | 2023.05.23 |