본문 바로가기

JAVA

Map 메서드 사용법 정리

 

put(K key, V value) 키와 값을 추가하거나, 동일한 키가 존재하면 값을 덮어씀 map.put("A", 1); {"A"=1}
putAll(Map<? extends K, ? extends V> m) 다른 맵의 모든 키-값 쌍을 추가 map.putAll(anotherMap); 다른 맵의 모든 요소 추가됨
putIfAbsent(K key, V value) 키가 존재하지 않는 경우에만 값을 추가 map.putIfAbsent("A", 2); 이미 존재 시 값이 추가되지 않음
get(Object key) 지정된 키의 값을 반환 map.get("A"); 1
getOrDefault(Object key, V defaultValue) 키가 없을 경우 기본값 반환 map.getOrDefault("B", 0); 0 (키 "B"가 없을 경우)
remove(Object key) 지정된 키의 키-값 쌍을 제거 map.remove("A"); {"A"=1}이 제거됨
remove(Object key, Object value) 키와 값이 일치하는 경우에만 키-값 쌍 제거 map.remove("A", 1); {"A"=1}이 정확히 일치 시 제거됨
containsKey(Object key) 맵에 지정된 키가 있는지 확인 map.containsKey("A"); true
containsValue(Object value) 맵에 지정된 값이 있는지 확인 map.containsValue(1); true
isEmpty() 맵이 비어 있는지 확인 map.isEmpty(); true 또는 false
size() 맵의 키-값 쌍의 개수 반환 map.size(); 0 (비어있는 경우)
clear() 맵의 모든 키-값 쌍 제거 map.clear(); {} (빈 맵)
keySet() 맵의 모든 키를 Set으로 반환 Set<String> keys = map.keySet(); ["A", "B", "C"] 같은 키의 집합
values() 맵의 모든 값을 Collection으로 반환 Collection<Integer> values = map.values(); [1, 2, 3] 같은 값의 모음
entrySet() 맵의 모든 키-값 쌍을 Set 형태로 반환 Set<Map.Entry<String, Integer>> entries = map.entrySet(); [A=1, B=2] 같은 엔트리의 집합
replace(K key, V value) 지정된 키의 값을 새 값으로 대체 map.replace("A", 3); {"A"=3}으로 대체됨
replace(K key, V oldValue, V newValue) 키와 값이 일치하는 경우에만 새 값으로 대체 map.replace("A", 1, 3); 조건 일치 시 {"A"=3}으로 대체됨
forEach(BiConsumer<? super K, ? super V> action) 각 키-값 쌍에 대해 작업 수행 (Java 8 이상) map.forEach((k, v) -> System.out.println(k + ":" + v)); 각 엔트리가 출력됨
compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 키에 대해 지정된 연산 수행 및 결과 저장 map.compute("A", (k, v) -> v == null ? 1 : v + 1); {"A"=2} (A가 이미 존재할 경우)
computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) 키가 없으면 연산 후 추가 map.computeIfAbsent("B", k -> 2); 키 "B"가 없으면 {"B"=2} 추가
computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 키가 있을 때만 연산 수행 map.computeIfPresent("A", (k, v) -> v + 1); 키 "A"가 있을 때만 값 변경
merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction) 기존 값과 병합하여 추가 map.merge("A", 1, Integer::sum); 키 "A"가 1 증가하거나 새로 추가됨