주요 차이점 : 컴퓨터 과학에서 hashTable 또는 hashMap은 키 (이름)를 값 (속성)과 연결하는 데이터 구조를 나타냅니다. 자바에서는 두 가지 사이에 중요한 차이점이 있습니다 : HashTable이 동기화되고 HashMap이 비동기입니다. HashTable은 null 키를 허용하지 않습니다. 그러나 HashMap은 하나의 널 (null) 키와 임의의 수의 널 값을 허용합니다.
HashMap과 hashTable은 Java 컬렉션의 일부인 데이터 구조입니다. 객체를 저장하기 위해 키 - 값 쌍을 사용합니다. 그것들은 java.util.Map 인터페이스를 구현하는 것과 같은 두 유사점을 공유하며, 두 가지 모두 해시 원칙에 따라 작동합니다. 그러나 자바 프로그래밍 언어와 관련하여 이들을 참조 할 때이 둘 사이에는 많은 차이점이 있습니다.
hashTable은 키를 사용하여 값을 저장하고 검색하는 데 사용됩니다. 이를 위해 키는 고유해야합니다. 키 및 값 쌍을 저장하는 데 사용되는 테이블을 해시 테이블이라고합니다. 해시 테이블은 키를 해시하는 알고리즘을 사용하여 형성됩니다. 이 해시 함수는 입력 데이터에 숫자를 할당하는 데 사용되며 데이터는 계산되거나 계산 된 숫자에 해당하는 배열 인덱스로 저장됩니다.
HashMap과 HashTable의 비교 :
HashMap | HashTable | |
동기화 | 동기화되지 않았습니다. | 그것은 동기화 (스레드 안전) |
Null 값 | null 값을 키와 값으로 허용합니다. | null을 허용하지 않습니다. |
자바 소개 | Java 버전 1.2 | 자바 개발 킷의 첫 번째 버전 |
공연 | 비교적 낫다. | 비교적 가난한 |
확장하다 | AbstractMap 클래스를 확장합니다. | 아주 오래된 Dictionary 클래스를 확장합니다. |
키의 반복 | 반복자는 키 반복에 사용됩니다. | Enumeration 인터페이스는 반복 키에 사용됩니다. |
응용 프로그램 | 비 스레드 응용 프로그램에 더 좋습니다. | 일반적으로 다중 스레드 응용 프로그램에 안전합니다. |
직렬화 | 직렬화되지 않음 | 직렬화 된 |
대안 | 다중 스레드 환경에서 동시 hashMap을 사용할 수 있습니다. | 그런 대안이 없다. |