HashMap과 Hashtable
- Map인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장
- 순서X, 중복(키X, 값O)
- HashMap(동기화x)은 Hashtable(동기화O)의 신버전
HashMap
- Map인터페이스를 구현한 대푲거인 컬렉션 클래스
- 순서를 유지하려면, LinkedHashMap클래스를 사용하면 됨
HashTable
- 배열 + 링크드리스트
TreeMap
- 범위 검색과 정렬에 유리한 컬렉션 클래스
- HashMap보다 데이터추가, 삭제에 시간이 더 걸림
해싱(hashing)
- 해시 함수로 해시테이블에 데이터를 저장, 검색
- 해시테이블은 배열과 링크드 리스트가 조합된 형태
메서드 | 설명 |
---|---|
HashMap() | 기본 생성자 |
HashMap(int initialCapacity) | 배열 초기용량지정 |
HashMap(int initialCapacity, float loadFactor) | 배열 초기용량지정 |
HashMap(Map m) | 다른 맵을 해쉬맵으로 변경 |
Object put(Object key, Object value) | 데이터 저장 |
void putAll(Map m) | 지정된 맵에 있는것들을 저장 |
Object remove(Object key) | 삭제 |
Object replace(Object key, Object value) | 변경 |
boolean replace(Object key, Object oldValue, Object newValue) | 변경 |
Set entrySet() | 키와 값쌍들을 가진 엔트리(키+값)들을 가져옴 |
Set keySet() | 키를 가져옴 |
Collection values() | 값을 가져옴 |
Object get(Object key) | 특정 키값으로 값을 반환 |
Object getOrDefault(Object key, Object defaultValue) | 특정 키값이 없을시 default값을 반환 |
boolean containKey(Object key) | 키가 있는지 반환 |
boolean containsValue(Object value) | 값이 있는지 반환 |
int size() | 크기를 반환 |
boolean isEmpty() | 비었는지 확인 |
void clear() | 모두 삭제 |
Object clone() | 복제 |
예제1)
)