Algorithm/자바

자바 Map

tjddneva 2022. 3. 9. 18:38

자바 Map 에 대해서 알아보자.

 

Map 인터페이스에는 HashTable, TreeMap, HashMap, 그리고 HashMap 을 상속받는 LinkedHashMap 이 있다. 여기서 HashTable 은 null 값을 넣을 수 없고 thread safe 한데 코딩테스트 문제 푸는데는 thread safe 할 필요가 없다. 그래서 HashTable 은 버리고 TreeMap, HashMap 그리고 LinkedHashMap 에 대해 알아보자.

 

TreeMap, HashMap, LinkedHashMap 은 Set 에 있는 그것들과 똑같다.

 

TreeMap 은 트리구조로,

HashMap 은 무순서로

LinkedHashMap 은 집어넣은 순서로 저장된다.

 

HashMap 은 생성할때 초기용량을 넣어줄 수 있고

TreeMap 은 생성할때 인자로 Comparator 를 넣어 줄 수 있다. 

 

Map 인터페이스에 있는 메소드를 알아보면

size() 사이즈
isEmpty() 비었니?
containsKey(Object key) key 있는 지 없는 지
containsValue(Object value) value 있는 지 없는 지
get(Object key) value 반환 없으면 null
put(key, value)  key, value 쌍 대입 만약 이미 그 키가 있으면 replace 한다.
remove(Object key) key mapping 삭제 만약 그 key 가 없었으면 null
putAll(Map<> m) 맵 고대로 복사
clear() 다 지운다 히히
keySet() Map 에 있는 key 들을 Set 형태로 반환
values() Map 에 있는 value 들을 Collection 형태로 반환
entrySet() Set<Map.Entry<K, V>> 를 반환 ex for(Entry<k,v> entry : map.entrySet()) {....} 형식으로 씀

 

그리고 Map 안에 Entry<K, V> 인터페이스가 있는데 

여기에 또 메소드가

getKey()

getValue()

setValue()

가 있다.