HashMap과 Hashtable 클래스 모두 java.util.map 인터페이스를 구현하지만 작업 방법과 사용법에 차이가 있습니다. 다음 글에서는 HashMap과 Hashtable의 차이점을 설명하겠습니다. 모든 사람에게 도움이 되기를 바랍니다.
Java의 HashMap과 Hashtable 예제
먼저 HashMap과 Hashtable의 차이점을 예제를 통해 살펴보겠습니다.
HashMap 및 Hashtable은 해시 테이블에 키/값 쌍을 저장합니다. Hashtable이나 HashMap을 사용할 때 키로 사용할 객체와 해당 키에 연결할 값을 지정합니다. 그런 다음 키가 해시되고 결과 해시(해시) 코드가 테이블에 저장된 값에 대한 인덱스로 사용됩니다.
java 코드:
import java.util.*; import java.lang.*; import java.io.*; /* 只有当类是公共的时,类的名称才必须是“main” */ class Ideone { public static void main(String args[]) { //----------hashtable ------------------------- Hashtable<Integer,String> ht=new Hashtable<Integer,String>(); ht.put(100,"Amit"); ht.put(104,"Amit"); ht.put(101,"Vijay"); ht.put(102,"Rahul"); System.out.println("-------------Hash table--------------"); for (Map.Entry m:ht.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } //----------------hashmap-------------------------------- HashMap<Integer,String> hm=new HashMap<Integer,String>(); hm.put(100,"Amit"); hm.put(104,"Amit"); // hashmap 允许重复值 hm.put(101,"Vijay"); hm.put(102,"Rahul"); System.out.println("-----------Hash map-----------"); for (Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } } }
출력:
HashMap과 Hashtable의 차이점
1. HashMap은 비동기적이고 스레드로부터 안전하지 않습니다. 여러 스레드 간에 공유됩니다. Hashtable은 동기화되고 스레드로부터 안전하며 많은 스레드와 공유될 수 있습니다.
참고: 스레드 동기화가 필요하지 않은 경우 일반적으로 HashMap이 Hashtable보다 낫습니다.
2. HashMap은 하나의 null 키와 여러 개의 null 값을 허용하지만 Hashtable은 null 키나 값을 허용하지 않습니다.
3. Hashmap은 삽입 순서를 유지하기 위해 linkedhashmap을 구현하고, treemap은 키의 오름차순에 따라 매핑을 정렬합니다. 그리고 해시테이블은 어떤 종류의 순서도 보장하지 않습니다. 특정 순서로 매핑을 유지하지 않습니다.
4. HashMap은 AbstractMap 클래스에서 상속되고 HashTable은 Dictionary 클래스에서 상속됩니다.
5. Hashtable의 기본 초기 용량은 11이고, 확장할 때마다 용량은 원래 2n+1이 되는 반면, HashMap의 기본 초기 용량은 16이며, 확장될 때마다 용량이 늘어납니다. 원본은 2번.
6. 해시 값을 계산하는 다양한 방법
7. HashMap의 반복자는 빠른 실패 메커니즘인 반면, Hashtable의 반복자는 빠른 실패 메커니즘이 아닙니다.
추천 동영상 튜토리얼: "Java Tutorial"
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !
위 내용은 Java에서 HashMap과 Hashtable의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!