키로 값을 저장하고 집계합니다.
Map은 고유 키를 값에 연결합니다. get은 없는 키에서 null을 반환하고 getOrDefault, computeIfAbsent, merge는 기본값과 집계를 간결하게 처리합니다.
merge는 키가 처음 나오면 값 1을 그대로 넣고, 이미 있으면 기존 값과 1을 Integer::sum으로 더해 바꿉니다. 그래서 java는 두 번째 등장에서 2가 되고 web과 data는 1로 남습니다. 출력 순서가 입력 순서와 다른 것은 HashMap이 키의 해시값에 따라 저장 위치를 정하기 때문이고, 넣은 순서를 지키려면 LinkedHashMap을 씁니다.
키 객체는 Map에 들어간 동안 equals와 hashCode 결과가 바뀌지 않아야 합니다. 변경 가능한 객체를 키로 쓰지 않는 편이 안전합니다.
동시 변경이 필요한 공유 Map에는 ConcurrentHashMap과 원자적 메서드를 검토합니다.
containsKey 없이 get 결과 null만 보면 키가 없거나 값이 null인 경우를 구분하지 못합니다.
직접 바꿔보세요단어 빈도를 merge로 계산하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.