키(key) : 컬렉션 내의 키 중에서 유일해야 한다.
값(value) : 키와 달리 데이터의 중복을 허용한다.
key를 넣으면 index(저장위치)를 알려줌, 결과 값이 해쉬코드(배열의 인덱스)
해쉬함수를 이용해서 저장하고 읽어 오는것을 해싱이라 한다.
해시함수는 Object.hash() 메소드를 이용해서 작성하면 된다.
해쉬함수는 같은 키에 대해 항상 같은 해시코드를 반환해야 한다.
서로 다른 키일지라도 같은 값의 해시코드를 반환할 수도 있다.
생성자
HashMap()
HashMap(int initialCapacitiy) // 초기용량 설정
HashMap(int initialCapacity, float loadFactor)
HashMap(Map m) // 다른 맵을 해시맵으로 바꿀 수 있음
링크드리스트의 특성을 가지고 있음
Object put(Object key, Object value)
void putAll(Map m)
Object remove(Obejct key)
Object replace(Object key, Object value) // 변경, 기존의 지정된 키를 새로운 값으로 저장
boolean replace(Object key, Object oldValue, Object newValue)
// 변경, 기존의 지정된 키를 새로운 값으로 저장
읽어오는 메서드
Set entrySet() // 키와 값을 가진 set를 생성
Set keySet() // key값만 가져옴
Collection values() // 값만 가져옴
Object get(Object key) // key에 해당하는 value 반환
Object getOrDefault(Object key, Object defaultValue) // key가 없을때 defaultValue를 반환
boolean containsKey(Object key) // 지정된 key가 있는지 확인
boolean containsValue(Object value) // 지정된 value가 있는지
int size()
boolean isEmpty()
void clear()
Object clone()