CODEDRAGON ㆍDevelopment/Algorithm, DataStructure
Hash알고리즘을 통한 데이터 구분
해시 알고리즘은 데이터의 분류에 사용이 됩니다. 해시 알고리즘을 이용하면 매우 빠르게 검색 작업을 수행할 수 있습니다.
데이터를 3으로 나머지 연산하였을 때 얻게 되는 반환 값을 ‘해시 값’으로 하여 총 세 개의 그룹를 구성할 수 있습니다.
38의 저장유무를 확인하는 경우
|
해쉬알고리즘을 통해 이렇게 분류해 놓으면, 데이터의 검색이 빨라질수 있습니다. 정수 38이 저장되어있는지 확인할 경우 정수 38의 해시 값을 구합니다. 그 다음에 해시 값에 해당하는 그룹에서만 정수 38이 저장되었는지만 체크하면 됩니다. |
HashSet<E> 클래스의 동등비교
검색 1단계 |
Object 클래스의 hashCode() 메소드의 반환 값을 해시 값으로 활용하여 검색의 그룹을 선택합니다. |
검색 2단계 |
그룹내의 인스턴스를 대상으로 Object 클래스의 equals()메소드의 반환 값의 결과로 동등비교을 판단하게 됩니다. |
동등 비교를 위한 두개 메소드 오버라이딩
메소드 |
설명 |
hashCode() |
hashCode 메소드의 구현에 따라서 검색의 성능이 달라질수 있습니다. |
equals() |
동일 인스턴스를 판단하는 기준에 맞게 equals 메소드를 적절히 정의해야 합니다. |
동일 인스턴스를 판단하는 기준에 맞게 equals 메소드를 적절히 정의해야 합니다.
@Override public int hashCode( ){ } @Override public boolean equals(Object obj){ } |
'Development > Algorithm, DataStructure' 카테고리의 다른 글
Comparable<T> 인터페이스, compareTo (T obj)메소드 구현 기준, Comparator <T> 인터페이스 (0) | 2017.10.17 |
---|---|
TreeSet<E> 클래스, TreeSet 생성자 (0) | 2017.10.17 |
해시 알고리즘(hash algorithm), 해시 알고리즘을 이용한 자료 구조 도식도 (0) | 2017.10.17 |
HashSet 메소드 (0) | 2017.10.17 |
HashSet 클래스 (0) | 2017.10.17 |