본문 바로가기
Java

Java HashMap 클래스의 모든 메소드와 예제

by Status Code 2023. 3. 21.

Java HashMap 클래스는 key-value 쌍을 저장하는 데 사용되는 자료 구조입니다. 이 클래스는 매우 유용하며 다양한 용도로 사용될 수 있습니다.

 

put(key, value)

새로운 key-value 쌍을 HashMap에 추가합니다.

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("cherry", 3);

 

 

putAll(map)

다른 HashMap에 있는 모든 key-value 쌍을 현재 HashMap에 추가합니다.

HashMap<String, Integer> map2 = new HashMap<>();
map2.put("durian", 4);
map2.put("elderberry", 5);
map.putAll(map2);

 

 

get(key)

주어진 key에 해당하는 value를 반환합니다.

Integer value = map.get("banana");
System.out.println(value); // 2

 

 

remove(key)

주어진 key와 해당하는 value를 HashMap에서 제거합니다.

map.remove("cherry");
System.out.println(map); // {apple=1, banana=2, durian=4, elderberry=5}

 

 

replace(key, value)

주어진 key에 해당하는 value를 새 값으로 대체합니다.

map.replace("banana", 6);
System.out.println(map); // {apple=1, banana=6, durian=4, elderberry=5}

 

 

clear()

HashMap의 모든 key-value 쌍을 제거합니다.

map.clear();
System.out.println(map); // {}

 

 

size()

HashMap에 저장된 key-value 쌍의 수를 반환합니다.

int size = map.size();
System.out.println(size); // 0

 

 

isEmpty()

HashMap이 비어있는지 여부를 반환합니다.

boolean isEmpty = map.isEmpty();
System.out.println(isEmpty); // true

 

 

containsKey(key)

HashMap이 주어진 key를 포함하고 있는지 여부를 반환합니다.

boolean containsKey = map.containsKey("apple");
System.out.println(containsKey); // false

 

 

containsValue(value)

HashMap이 주어진 value를 포함하고 있는지 여부를 반환합니다.

boolean containsValue = map.containsValue(1);
System.out.println(containsValue); // false

 

 

keySet()

HashMap에 저장된 모든 value를 Collection으로 반환합니다.

Set<String> keys = map.keySet();
System.out.println(keys); // []

 

 

values()

HashMap에 저장된 모든 value를 Collection으로 반환합니다.

Collection<Integer> values = map.values();
System.out.println(values); // []

 

 

entrySet()

HashMap에 저장된 모든 key-value 쌍을 Set으로 반환합니다.

Set<Map.Entry<String, Integer>> entries = map.entrySet();
System.out.println(entries); // []

 

 

getOrDefault(key, defaultValue)

주어진 key에 해당하는 value를 반환합니다. key가 없는 경우 defaultValue를 반환합니다.

Integer value = map.getOrDefault("banana", 0);
System.out.println(value); // 0

 

 

computeIfAbsent(key, mappingFunction)

주어진 key에 해당하는 value가 없는 경우 mappingFunction을 사용하여 새 값을 계산하고 HashMap에 추가합니다.

map.computeIfAbsent("mango", k -> 7);
System.out.println(map); // {mango=7}

 

 

computeIfPresent(key, remappingFunction)

주어진 key에 해당하는 value가 있는 경우 remappingFunction을 사용하여 값을 다시 계산하고 HashMap에 추가합니다.

map.computeIfPresent("mango", (k, v) -> v * 2);
System.out.println(map); // {mango=14}

 

 

compute(key, remappingFunction)

주어진 key에 해당하는 value가 있으면 remappingFunction을 사용하여 값을 다시 계산하고 HashMap에 추가합니다. 값이 없는 경우 새 값을 계산하고 추가합니다.

map.compute("mango", (k, v) -> v * 3);
System.out.println(map); // {mango=42}
map.compute("grape", (k, v) -> 5);
System.out.println(map); // {mango=42, grape=5}

 

 

merge(key, value, remappingFunction)

주어진 key에 해당하는 value가 있으면 remappingFunction을 사용하여 값을 병합하고 HashMap에 추가합니다. 값이 없는 경우 새 값을 추가합니다.

map.merge("mango", 5, (v1, v2) -> v1 + v2);
System.out.println(map); // {mango=47, grape=5}
map.merge("apple", 10, (v1, v2) -> v1 + v2);
System.out.println(map); // {mango=47, grape=5, apple=10}

 

 

forEach(action)

HashMap의 모든 key-value 쌍에 대해 주어진 action을 수행합니다.

map.forEach((key, value) -> System.out.println(key + ":" + value));
// mango:47
// grape:5
// apple:10

 

 

replaceAll(function)

HashMap의 모든 value에 대해 주어진 function을 적용하여 값을 대체합니다.

map.replaceAll((key, value) -> value + 1);
System.out.println(map); // {mango=48, grape=6, apple=11}

 

 

equals(obj)

주어진 객체와 HashMap이 동일한지 여부를 반환합니다.

HashMap<String, Integer> map3 = new HashMap<>();
map3.put("mango", 48);
map3.put("grape", 6);
map3.put("apple", 11);
boolean isEqual = map.equals(map3);
System.out.println(isEqual); // true

 

 

hashCode()

HashMap의 해시 코드를 반환합니다.

int hashCode = map.hashCode();
System.out.println(hashCode); // 104042587

위의 예제들은 HashMap 클래스의 모든 메소드와 그 예제를 보여줍니다. HashMap 클래스는 매우 유용하며 다양한 용도로 사용될 수 있습니다. HashMap 클래스를 사용할 때에는 메소드의 사용법과 예외 처리 등을 꼼꼼히 살펴보는 것이 좋습니다.

댓글