Java의 Hashmap 충돌
Hiten Kanwar
2021년10월12일
Java 컬렉션 인터페이스는 HashMap
클래스를 사용하여 해시 테이블 데이터 구조의 기능을 제공합니다. 이 클래스는 키가 식별자 역할을 하고 맵의 값과 고유하게 연결된 키-값 쌍에 요소를 저장합니다.
이 튜토리얼에서는 Java의 충돌에 대해 설명합니다.
HashMap
키는 해시코드와 equals()
메소드를 포함합니다. 맵에 새 항목을 삽입할 때마다 해시 코드를 확인합니다. equals()
메서드를 사용하여 해시 코드의 유사성을 검색하여 전체 개체 풀을 구문 분석합니다.
항목이 있는 경우 새 값이 기본적으로 존재하는 값을 대체합니다. 그렇지 않으면 단순히 완전히 새로운 키-값 쌍을 생성합니다.
충돌은 여러 키가 동일한 버킷에 해시되거나 둘 이상의 객체가 동일한 해시 코드를 갖지만 다른 경우에 발생합니다. 두 개의 키가 동일한 값으로 해시되면 버킷 위치에 연결 목록이 형성되며 모든 정보는 키-값 쌍을 포함하는 맵의 항목으로 저장됩니다.
항목이 목록 내에 있는 경우 개체에 액세스하는 것이 번거로울 수 있습니다. 이러한 연결 목록은 Java 8 버전에서 이진 트리로 변환되었습니다.
HashMap
은 Java 8에서 방법론을 변환한 것처럼 연결된 목록이나 이진 트리에 값을 저장하는 것을 제안하는 체인이라는 개념을 사용하여 충돌 사례를 매우 효율적으로 처리합니다.