영호

[Java] Map인터페이스 - HashMap 본문

Language/JAVA

[Java] Map인터페이스 - HashMap

0h0 2022. 6. 25. 13:57

HashMap이란

  • Java의 collections 중 Map인터페이스를 구현한 클래스 중 하나입니다.
  • 파이썬의 딕셔너리처럼 "Key : Value"형태로 이루어져 있습니다. 
  • 이미 존재하는 Key에 새로운 값을 넣을 경우 기존 값은 새로운 값으로 대체됩니다.
    • Key는 중복될 수 없습니다.
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
hashMap.put("test", 2);

System.out.println("hashMap = " + hashMap);
// hashMap = {test=2}
  • 멀티 스레드 환경에서는 ConcurrentHashMap을 사용해야 합니다.
  • 해시 함수를 이용해 값을 저장하고 찾기 때문에 데이터 검색에서 속도가 빠른 장점이 있습니다.

HashMap 주요 메서드

메서드 설명
void clear() 해당 맵(map)의 모든 매핑(mapping)을 제거함.
boolean containsKey(Object key) 해당 맵이 전달된 키를 포함하고 있는지를 확인함.
boolean containsValue(Object value) 해당 맵이 전달된 값에 해당하는 하나 이상의 키를 포함하고 있는지를 확인함.
V get(Object key) 해당 맵에서 전달된 키에 대응하는 값을 반환함.
만약 해당 맵이 전달된 키를 포함한 매핑을 포함하고 있지 않으면 null을 반환함.
boolean isEmpty() 해당 맵이 비어있는지를 확인함.
Set<K> keySet() 해당 맵에 포함되어 있는 모든 키로 만들어진 Set 객체를 반환함.
V put(K key, V value) 해당 맵에 전달된 키에 대응하는 값으로 특정 값을 매핑함.
V remove(Object key) 해당 맵에서 전달된 키에 대응하는 매핑을 제거함.
boolean remove(Object key, Object value) 해당 맵에서 특정 값에 대응하는 특정 키의 매핑을 제거함.
V replace(K key, V value) 해당 맵에서 전달된 키에 대응하는 값을 특정 값으로 대체함.
boolean replace(K key, V oldValue, V newValue) 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체함.
int size() 해당 맵의 매핑의 총 개수를 반환함.

 

실습

put(key, value)

Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);

System.out.println("hashMap = " + hashMap);
// hashMap = {test=1}

get(key)

Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);

System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = 1

remove(key)

Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = 1

hashMap.remove("test");
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = null

replace(key, value)

Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
//hashMap.get("test") = 1


hashMap.replace("test", 10);
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = 10

size()

Map<String, Integer> hashMap = new HashMap();

hashMap.put("test", 1);
hashMap.put("test1", 1);
hashMap.put("test2", 1);

System.out.println("hashMap = " + hashMap); // hashMap = {test2=1, test=1, test1=1}
System.out.println("hashMap.size() = " + hashMap.size()); // hashMap.size() = 3

keySet()

Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
hashMap.put("test1", 1);
hashMap.put("test2", 1);

System.out.println("hashMap = " + hashMap.keySet());
// hashMap = [test2, test, test1]

 

출처

 

Comments