728x90 HashSet2 [Java]Hash Hash(Hash Table) 정의 hash는 데이터를 다루는 대표적인 데이터 처리 기법. 이를 활용해 데이터를 저장하는 자료구조가 hash table이다. Key, Value가 한 쌍으로 존재하며, key값에 해시함수를 적용해 index를 생성하여, 해당 인덱스에 value를 저장한다. 배경 Array는은 검색 속도가 빠르지만, 데이터의 삽입/삭제 시 속도가 느리다. LinkedList는 삽입/삭제 시 속도가 빠르지만, 순회 검색만 가능해 데이터가 많아질 수록 속도가 느리다. 이러한 속도적 한계를 극복하기 위해 제시된 기법. 특징 산술 연산 (hash function)을 이용해 데이터가 저장 될 위치를 계산한다. 데이터의 검색과 저장이 상수 시간 O(1)에 수렴한다. key를 추가/삭제시 key의 중복.. 2022. 4. 27. item 11. equals를 재정의하려거든 hashCode도 재정의하라 hashCode란? 간단히 말해, hashCode() 는 해싱 알고리즘에 의해 생성된 정수 값을 반환합니다. ( equals() 에 따라) 동일한 객체는 동일한 해시 코드를 반환해야 합니다. 다른 객체는 다른 해시 코드를 반환할 필요가 없습니다. As much as is reasonably practical, the hashCode() method defined by class Object does return distinct integers for distinct objects. hashCode의 일반 규약 equals 비교에 사용되는 정보가 변경되지 않았다면 애플리케이션이 실행되는 동안 그 객체의 hashCode는 항상 같은 값을 반환해야한다. 단, 애플리케이션이 재실행하는 경우 값이 달라질 수는 있.. 2022. 4. 19. 이전 1 다음 728x90