반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 문자열
- CMD
- map
- Array
- js
- 이탈리아
- 배열
- CSS
- list
- 정규식
- Visual Studio Code
- date
- json
- table
- Java
- string
- Eclipse
- html
- input
- 자바
- vscode
- replace
- javascript
- ArrayList
- IntelliJ
- HashMap
- 자바스크립트
- 이클립스
- 인텔리제이
- Button
Archives
- Today
- Total
어제 오늘 내일
[Java HashMap] merge() 메소드 정리 및 활용 본문
merge()
는 Java 8에서 추가된 메소드로, 기존 값과 새 값을 결합하는 데 유용합니다.
특히 누적 연산, 합계 계산, 문자열 연결, 카운팅 패턴에서 깔끔하게 사용할 수 있습니다.
1. 기본 사용법
import java.util.HashMap;
public class HashMapMergeBasic {
public static void main(String[] args) {
HashMap<String, Integer> scores = new HashMap<>();
scores.put("kim", 90);
scores.merge("kim", 10, (oldVal, newVal) -> oldVal + newVal);
scores.merge("lee", 80, (oldVal, newVal) -> oldVal + newVal);
System.out.println(scores); // {kim=100, lee=80}
}
}
- 키가 존재하면 remappingFunction을 적용해 값 갱신
- 키가 없으면 단순히 새 값 삽입
2. 문자열 결합 예제
import java.util.HashMap;
public class HashMapMergeString {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("msg", "Hello");
map.merge("msg", " World", (oldVal, newVal) -> oldVal + newVal);
map.merge("greet", "Hi", (oldVal, newVal) -> oldVal + newVal);
System.out.println(map); // {msg=Hello World, greet=Hi}
}
}
기존 값과 새 값을 합쳐 문자열을 이어붙일 수 있습니다.
3. 활용 예제: 단어 빈도수 세기
import java.util.*;
public class HashMapMergeWordCount {
public static void main(String[] args) {
String text = "apple banana apple cherry banana apple";
String[] words = text.split(" ");
Map<String, Integer> freq = new HashMap<>();
for (String word : words) {
freq.merge(word, 1, (oldVal, newVal) -> oldVal + newVal);
}
System.out.println(freq); // {banana=2, cherry=1, apple=3}
}
}
merge()
를 쓰면 if문이나 null 체크 없이 간결하게 카운팅이 가능합니다.
4. 값 제거도 가능
import java.util.HashMap;
public class HashMapMergeRemove {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("x", 5);
map.merge("x", 1, (oldVal, newVal) -> null); // null 리턴 시 해당 키 제거
System.out.println(map); // {}
}
}
remappingFunction이 null
을 반환하면 키가 삭제됩니다.
결론
merge(key, value, remappingFunction)
- 키 없으면 값 삽입, 키 있으면 함수 적용
- 카운팅, 합계, 문자열 연결, 조건부 삭제 등에 적합
compute()
계열보다 더 직관적으로 누적 연산을 처리할 수 있음
반응형
'IT > Java' 카테고리의 다른 글
[Java HashMap] forEach() 메소드와 람다식 순회 (0) | 2025.10.18 |
---|---|
[Java HashMap] keySet(), values(), entrySet() 활용법 (0) | 2025.10.17 |
[Java HashMap] compute(), computeIfAbsent(), computeIfPresent() 메소드 정리 (0) | 2025.10.16 |
[Java HashMap] replace()와 replaceAll() 메소드 정리 (0) | 2025.10.12 |
[Java HashMap] remove() 메소드 정리 및 활용 (0) | 2025.10.11 |
Comments