반응형
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
- js
- ArrayList
- Eclipse
- list
- json
- CSS
- 정규식
- Array
- 인텔리제이
- 이클립스
- CMD
- string
- 배열
- 문자열
- replace
- 자바스크립트
- html
- 이탈리아
- date
- IntelliJ
- Button
- map
- javascript
- input
- 자바
- HashMap
- Java
- table
- Visual Studio Code
- vscode
Archives
- Today
- Total
어제 오늘 내일
[Java HashMap] replace()와 replaceAll() 메소드 정리 본문
HashMap
에서는 기존 값을 교체할 때 replace()
와 replaceAll()
메소드를 사용할 수 있습니다.
단순한 값 수정부터 조건부 교체, 일괄 처리까지 다양한 상황에서 활용됩니다.
1. replace(K key, V value)
import java.util.HashMap;
public class HashMapReplaceBasic {
public static void main(String[] args) {
HashMap<String, Integer> scores = new HashMap<>();
scores.put("kim", 90);
scores.put("lee", 80);
Integer oldVal = scores.replace("kim", 95);
Integer notFound = scores.replace("park", 70);
System.out.println("oldVal = " + oldVal); // 90
System.out.println("notFound = " + notFound); // null
System.out.println(scores); // {kim=95, lee=80}
}
}
키가 있으면 값을 교체하고 기존 값을 반환합니다. 키가 없으면 null
을 반환합니다.
2. replace(K key, V oldValue, V newValue)
import java.util.HashMap;
public class HashMapReplaceConditional {
public static void main(String[] args) {
HashMap<String, String> roles = new HashMap<>();
roles.put("user1", "guest");
boolean result1 = roles.replace("user1", "guest", "admin"); // 조건 일치 → 교체
boolean result2 = roles.replace("user1", "guest", "root"); // 조건 불일치 → 실패
System.out.println(result1); // true
System.out.println(result2); // false
System.out.println(roles); // {user1=admin}
}
}
기존 값이 특정 값일 때만 교체합니다. 멀티스레드 환경에서 안전하게 교체할 때 유용합니다.
3. replaceAll(BiFunction<K, V, V> function)
import java.util.HashMap;
public class HashMapReplaceAll {
public static void main(String[] args) {
HashMap<String, Integer> scores = new HashMap<>();
scores.put("kim", 90);
scores.put("lee", 80);
scores.put("park", 70);
// 모든 점수에 +5 점
scores.replaceAll((k, v) -> v + 5);
System.out.println(scores); // {kim=95, lee=85, park=75}
}
}
모든 요소에 대해 지정된 연산을 적용합니다. 람다식을 사용해 일괄 수정할 수 있어 코드가 깔끔합니다.
결론
replace(key, value)
→ 단순 교체 (없으면 null)replace(key, oldVal, newVal)
→ 조건부 교체 (boolean 반환)replaceAll(function)
→ 전체 값 일괄 변환- 단일 키 수정부터 조건부/일괄 변환까지 다양한 시나리오에서 활용 가능
반응형
'IT > Java' 카테고리의 다른 글
[Java HashMap] remove() 메소드 정리 및 활용 (0) | 2025.10.11 |
---|---|
[Java HashMap] putIfAbsent() 메소드 활용법 (0) | 2025.10.11 |
[Java HashMap] get() vs getOrDefault() 차이와 활용법 (0) | 2025.10.10 |
[Java HashSet] 정렬 방법과 활용 예제 (0) | 2025.10.10 |
[Java 컬렉션] HashMap vs HashSet vs TreeSet 비교 (0) | 2025.10.09 |
Comments