반응형
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 |
Tags
- Java
- Array
- HashMap
- replace
- input
- javascript
- 문자열
- 정규식
- Eclipse
- CMD
- CSS
- table
- 배열
- map
- list
- IntelliJ
- 이탈리아
- html
- vscode
- 자바
- js
- ArrayList
- string
- 이클립스
- 자바스크립트
- 인텔리제이
- json
- Button
- Visual Studio Code
- date
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] merge() 메소드 정리 및 활용 (0) | 2025.10.17 |
|---|---|
| [Java HashMap] compute(), computeIfAbsent(), computeIfPresent() 메소드 정리 (0) | 2025.10.16 |
| [Java HashMap] remove() 메소드 정리 및 활용 (0) | 2025.10.11 |
| [Java HashMap] putIfAbsent() 메소드 활용법 (0) | 2025.10.11 |
| [Java HashMap] get() vs getOrDefault() 차이와 활용법 (0) | 2025.10.10 |
Comments