[자료구조] 해시 1. 해시 데이터를 빠르게 추가하거나 제거하도록 하는 데이터 구조 키(key)와 값(value)를 가지고 있음 → 키가 주어지면 평균 O(1)의 속도로 값을 찾을 수 있음 2. 해시함수 속도가 빠름 데이터의 속성 두개가 같으면 같은 값을 반환해야 함 동일한 상황일 때 항상 같은 값을 반환해야 함 새로 실행하면 객체가 같아도 다른 값이 나올 수 있음 → 객체들은 실행할 때마다 다른 주소에 저장되기 때문 충돌(collison)이 발생하지 않도록 만들어야 함 충돌: 서로 다른 값을 가진 키가 일치하는 경우 해시의 크기를 홀수로 설정(% 연산으로 다양한 값이 나오게 함) 해시의 크기를 소수로 설정 해시 함수의 반환 값을 hashcode라고 함 → 해시 테이블의 인덱스를 결정 해시코드는 최대한 ..