1. HashMap

HashMap 은 Map 인터페이스를 구현한 클래스로 해싱(hashing)을 사용 하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 갖는다. 내부적으로 배열과 링크드 리스트를 사용하여 데이터를 저장한다. 이에 대한 자세한 설명은 생략한다.
2. HashMap 클래스에 정의된 메서드 목록
2.1. 생성자
| 메서드 | 기능 |
|---|
| HashMap() | HashMap 객체를 생성 |
| HashMap(int initialCapacity) | 지정된 값을 초기용량으로 하는 HashMap 객체를 생성 |
| HashMap(int initialCapacity, float loadFactor) | 지정된 초기용량과 load factor의 HashMap 객체를 생성 |
| HashMap(Map m) | 지정된 Map의 모든 요소를 포함하는 HashMap 객체를 생성 |
2.2. 삽입 / 탐색 / 삭제 메서드
반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.
삽입
| 메서드 | 기능 |
|---|
| Object put(Object key, Object value) | HashMap에 value 객체를 key 객체에 연결하여 저장 |
| void putAll(Map t) | 지정된 HashMap의 모든 key-value 쌍을 추가 |
변경
| 메서드 | 기능 |
|---|
| Object replace(Object key, Object value) | 지정된 키의 값을 지정된 객체(value)로 대체 |
| Object replace(Object key, Object oldValue, Object newValue) | 지정된 키와 객체(oldValue)가 모두 일치하는 경우에만 새로운 객체(newValue)로 대체 |
탐색
| 메서드 | 기능 |
|---|
| boolean containKey(Object key) | 지정된 key 객체와 일치하는 HashMap의 key 객체가 있는지 확인 |
| boolean containValue(Object value) | 지정된 value 객체와 일치하는 HashMap의 value 객체가 있는지 확인 |
| Set entrySet() | HashMap에 저장되어 있는 모든 key-value 쌍을 HashMap.Entry 타입의 객체로 저장한 Set을 반환 |
| Set keySet() | HashMap에 저장된 모든 key 객체를 반환 |
| Collection values() | HashMap에 저장된 모든 value 객체를 반환 |
| Object get(Object key) | 지정된 키(key)의 값(객체)을 반환 못찾으면 null을 반환 |
| Object getOrDefault(Object key, Object defaultValue) | 지정된 키(key)의 값(객체)을 반환 키를 못찾으면, 기본값 (defaultValue)로 지정된 객체를 반환 |
삭제
| 메서드 | 기능 |
|---|
| Object remove(Object key) | 지정한 key 객체와 일치하는 key-value 객체를 삭제 |
| void clear() | HashMap의 모든 객체를 삭제 |
2.3. HashMap.Entry 클래스에서 정의된 메서드
| 메서드 | 기능 |
|---|
| boolean equals(Obejct o) | 동일한 Entry인지 비교 |
| Object getKey() | Entry의 key 객체를 반환 |
| Object getValue() | Entry value 객체를 반환 |
| int hashCode() | Entry의 해시코드를 반환 |
| Object setValue(Object value) | Entry의 value 객체를 지정된 객체로 변경 |
2.4. 추가 핵심 기능
Object 메서드
| 메서드 | 기능 |
|---|
| boolean equals(Object o) | 동일한 HashMap인지 비교 |
| int hashCode() | 해시코드를 반환 |
| Object clone() | 현재 HashMap을 복제해서 반환 |
컬렉션 상태 체크 / 변경
| 메서드 | 기능 |
|---|
| boolean isEmpty() | HashMap이 비어있는지 확인 |
| int size() | HashMap에 저장된 key-value 쌍의 개수를 반환 |
이러한 기능을 가진 HashMap을 LinkedHashMap 클래스가 상속한다.
3. 해당 게시글 작성에 참고한 글 목록
자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서