HashMap 클래스는 내부적으로 해시 테이블 형태로, 데이터를 관리하는 Collection 으로, Map 의 특징을 지닙니다. Map 의 특징은, 요소를 Key 와 Value 의 쌍으로 저장을 한다는 점입니다. 그리고 Key 의 중복을 제거한다는 점입니다.


HashMap 에 데이터를 추가하거나, 삭제하거나, 검색할 때는, 먼저, hashCode 메소드로 같은 해시 값을 가지는 버킷을 찾아가고 (반드시 hash 값이 같을 필요는 없고, hash 값들을 특정 기준에 의해서 그룹지어서 저장하므로, 따라서 같은 해시 값을 가지면 같은 버킷에 속할 확률이 높아집니다), 그 다음에, equals 메소드를 호출하여 실제로 데이터의 동일 여부를 판단합니다. 따라서, 임의의 클래스를 Key 로 가지는 HashMap 에 요소를 추가하여 HashMap 으로 그 데이터 요소들을 관리하고자 할 때는, 적절한 hashCode 메소드와 equals 를 Key 클래스에 overriding 해야 합니다.




(HashMap 클래스 참고)

https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

by kkikkodev 2016. 11. 12. 22:40