Map 인터페이스는 key-value 구조로 저장되며, key는 중복값을 허용하지 않지만 value는 허용한다.
기존에 저장된 데이터와 중복된 키로 저장하면, 마지막에 저장된 값이 남게된다.
| 메서드 | 설명 |
|---|---|
| clear() | 모든 객체를 삭제한다. |
| containsKey(key) | 지정된 키와 일치하는 것이 있는지 확인한다. |
| containsValue(value) | 지정된 값과 일치하는 것이 있는지 확인한다. |
| entrySet() | 저장된 key-value 쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환한다. |
| equals(o) | 동일한 Map인지 비교한다. |
| get(key) | key에 맞는 값을 가져온다. |
| hashCode() | 해시코드를 반환한다. |
| isEmpty() | Map이 비어있는지 확인한다. |
| keySet() | 저장된 모든 키를 반환한다. |
| put(key, value) | 새로운 key-value 쌍을 저장한다. |
| putAll(map) | 지정된 Map에 있는 모든 쌍을 추가한다. |
| remove(key) | key와 일치하는 쌍을 삭제한다. |
| size() | 저장된 쌍의 개수를 반환한다. |
| values() | 저장된 모든 value를 반환한다. |
HashMap은 Map 인터페이스를 구현한 구현 클래스로, Map 인터페이스와 마찬가지로 key-value 를 묶어 하나의 데이터(entry)로 저장한다.
해싱을 하기 때문에 많은 양의 데이터를 검색하는데 있어서 좋은 성능을 가진다.
key와 value를 각각 Object 타입으로 저장하지만, 키는 주로 String을 대문자 또는 소문자로 통일해서 사용하곤 한다.
해싱과 해시함수
해싱이란 해시함수를 이용해서 데이터를 해시테이블에 저장하고 검색하는 기법이다.
해시함수는 데이터가 저장되어 있는 곳을 알려 주기 때문에 다량의 데이터 중에서도 원하는 데이터를 빠르게 찾을 수 있다.