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()
가 있다.