>  기사  >  Java  >  HashTable은 Java에서 어떻게 작동합니까?

HashTable은 Java에서 어떻게 작동합니까?

王林
王林앞으로
2023-08-19 18:53:081106검색

HashTable은 Java에서 어떻게 작동합니까?

Hashtable 클래스는 해당 요소를 해시 테이블의 키-값 쌍으로 저장하는 Java Collection Framework의 일부입니다. Key는 관련 값을 가져오고 받는 데 사용할 수 있는 개체입니다. Hashtable과 HashMapclass 사이에는 몇 가지 유사점이 있지만 Hash 테이블은 동기화됩니다. 또한 해당 키는 값과 연결되어야 하며 이 문서는 Hash 테이블이 Java에서 내부적으로 작동하는 방식을 설명하는 것을 목표로 합니다.

Java에서 해시테이블이 작동하는 방식

해시테이블은 각 버킷에 항목 목록이 포함된 버킷 배열로 생각할 수 있습니다. 항목은 키와 값으로 구성됩니다. 우리는 키와 해당 키와 연관될 수 있는 값을 지정합니다. 그런 다음 키는 해시되어 값이 저장된 테이블에서 인덱스로 사용되는 해시 코드를 생성합니다. 해시 코드에서 값의 위치를 ​​가져오는 데 도움이 되는 함수를 해시 함수라고 합니다. 항상 해시 코드라는 양의 정수 값을 반환합니다. 여러 객체는 "equals()"라는 내장 메서드를 통해 평가한 후 동일한 정수 값을 얻을 수 있습니다. 그러나 유사한 객체는 항상 동일한 해시 코드를 갖습니다.

인덱스 할당 공식

indexNumber = hashNumber % totalBuckets

여기서 '%'는 나머지를 반환하는 모듈로 연산자입니다

위 수식의 사용법을 보여주는 예를 들어 보겠습니다. -

Q 해시 값이 17이고 총합이 XYZ인 요소를 얻었다고 가정합니다. 사용 가능한 버킷은 5개입니다. 그러면 어떤 인덱스 번호에 저장될지 찾아보세요

Solution − 17 % 5 = 2 따라서 인덱스 번호 2를 얻게 됩니다.

해시테이블의 충돌

앞서 설명한 것처럼 여러 개체가 동일한 해시 코드를 얻을 수 있으며 이는 충돌이라는 상황으로 이어집니다. 이는 두 개 이상의 키가 동일한 해시 값을 가지며 동일한 결과 버킷에 매핑되어 성능이 저하되는 경우 발생합니다. 기능적 혼란.

Hashtable 선언 구문

으아악

방법

  • 첫 번째 단계는 Hashtable 클래스를 사용할 수 있도록 'java.util' 패키지를 가져오는 것입니다

  • Hashtable 클래스의 인스턴스를 정의하고 'put()'이라는 내장 메소드.

  • 이제 for-each 루프를 사용하고 그 안에 'keySet()' 메서드를 사용하여 모든 키에 액세스하세요

    키와 연결된 값입니다.
예제 1

다음 예는 Java에서 Hashtable을 구현하는 방법을 보여줍니다.

으아악 출력

으아악

예 2

다음 예에서는 내장 메소드인 'get()'을 사용하여 해시테이블의 값을 검색합니다. 이 메소드는 키를 승인하고 해당 값을 반환합니다.

으아악

출력

으아악

결론

Hashtable 클래스를 정의하는 것으로 이 글을 시작했고, 다음 섹션에서는 예제를 통해 내부적으로 어떻게 작동하는지 설명했습니다. 나중에 Java 예제 프로그램을 통해 Hashtable의 실제 구현에 대해 논의했습니다.

위 내용은 HashTable은 Java에서 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제