코드스테이츠_국비교육/[Section1]

16.10_컬렉션 프레임워크[Map]_22.09.13

생각없이 해도 생각보다 좋다. 2022. 9. 15. 21:39

Map<K, V>

>의미 및 특징

: Key 객체와 Value 객체로 구성된 객체(Entry 객체)를 저장하는 자료 구조

//Entry 객체 = Key 객체 + Value 객체

//Key와 Value는 기본 타입일 수 없다.

: Key 객체는 고유한 값을 가지며, 중복 저장이 불가능하다.

: Key 객체는 Entry 객체를 구분하는 기준이다.

: Key 값으로 객체를 관리하기 때문에 메서드에 Key를 매개 값으로 하는 것이 많다.

: 동일한 Key 값에 다른 Value를 저장하면, 해당 Key에 새로운 Value 값이 저장된다.

: Map 인터페이스를 구현한 클래스로는 HashMap, Hashtable, TreeMap, SortedMap 등이 있다.

 

HashMap

>문법 구조

HashMap<K,V> 참조 변수명 = new HashMap<K,V>(); //1
HashMap<K,V> 참조 변수명 = new HashMap<K,V>(int initialCapacity); //2
HashMap<K,V> 참조 변수명 = new HashMap<K,V>(int initialCapacity, float loadFactor); //3
HashMap<K,V> 참조 변수명 = new HashMap<K,V>(Map m); //4

//K: HashMap 객체에 저장할 Key 값의 타입을 지정함.
//V: HashMap 객체에 저장할 Value 값의 타입을 지정함.

//1: 기본 생성자
//2: 초기 용량을 지정한 생성자
//3: 초기 용량과 loadFactor를 지정한 생성자
//4: 지정된 Map p를 HashMap으로 변환하는 생성자

/*
loadFactor
: 저장 용량이 차기 전에 미리 용량을 확보하기 위한 요소
: default loadFactor = 0.75
(예시) loadFactor = 0.7이면, 저장 용량이 70%차면 용량을 2배로 확장시킨다.
*/

>의미 및 특징

: entry 값이 위치, 순서와 상관없이 저장됨.

: 많은 양의 데이터를 검색하는데 특화됨 (Hashing의 장점)

: 반복자를 통한 검색을 위해서는 key요소를 저장시킬 Set을 생성하고 활용한다.

>공식 문서
https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

HashTable

>의미 및 특징

: HashMap과 내부 구조, 사용 방법이 유사함.

: HashMap의 새로운 버전

: HashMap과는 스레드와 관련된 차이가 있음.