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과는 스레드와 관련된 차이가 있음.
'코드스테이츠_국비교육 > [Section1]' 카테고리의 다른 글
18.02_스트림_22.09.15 (0) | 2022.09.17 |
---|---|
18.01_람다_22.09.15 (0) | 2022.09.15 |
16.09_컬렉션 프레임워크[Set<E>]_22.09.13 (0) | 2022.09.15 |
16.08_컬렉션 프레임워크[List<E>]_22.09.13 (0) | 2022.09.15 |
16.07_컬렉션 프레임워크[개요]_22.09.13 (0) | 2022.09.15 |