Hash알고리즘을 통한 데이터 구분 - 38의 저장유무를 확인하는 경우, HashSet<E> 클래스의 동등비교 - 동등 비교를 위한 두개 메소드 오버라이딩

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){ }