Java에서 해시 테이블과 해시 맵의 차이점

Mohammad Irfan 2023년10월12일
  1. Hashtable vs HashMap
  2. Java로Hashtable생성
  3. Java로HashMap생성
  4. Java의HashMap에 null 저장
  5. Java의Hashtable에 null 저장
Java에서 해시 테이블과 해시 맵의 차이점

이 튜토리얼에서는 Java에서HashtableHashMap의 차이점을 소개합니다. 또한 주제를 이해하기위한 몇 가지 예제 코드를 나열합니다.

Hashtable은 키-값 쌍에 데이터를 저장하는 데 사용되는 Java 컬렉션 프레임 워크의 클래스입니다. Java의 레거시 클래스이며 요소를 저장하는 해시 개념에서 작동합니다. 최신 Java 버전에서는 Hashtable이 권장되지 않습니다. 우리는 Hashtable보다 더 진보 된 HashMap을 사용해야합니다. Java에서 Hashtable과 HashMap의 주요 차이점을 요약 한 아래 표를 참조하십시오.

Hashtable vs HashMap

Hashtable HashMap
동기화 됨 동기화되지 않음
Null은 허용되지 않습니다. null 허용
레거시 클래스 유산 아님
느리다 빠르다

위의 비교표에서 Hashtable과 HashMap의 주요 차이점을 명확하게 확인할 수 있습니다. 이제 몇 가지 예를 살펴 보겠습니다.

Hashtable이 내부적으로 동기화되므로HashtableHashMap보다 약간 느려집니다.

Java로Hashtable생성

이 예에서는 Hashtable을 생성합니다. Hashtable을 생성하는 가장 간단한 방법이며 코드에서 Hashtable을 가져 오기만하면됩니다. 이 클래스는java.util패키지에 있습니다. 아래 예를 참조하십시오.

import java.util.Hashtable;

public class SimpleTesting {
  public static void main(String[] args) {
    Hashtable<Integer, String> hashTable = new Hashtable<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    System.out.println(hashTable);
  }
}

출력:

{3=Three, 2=Two, 1=One}

Java로HashMap생성

이 예에서는 Java로HashMap을 생성합니다. HashMap을 생성하는 가장 간단한 방법이며 코드에서 HashMap을 가져 오기만하면됩니다. 이 클래스는java.util패키지에 있습니다. 아래 예를 참조하십시오.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<Integer, String> hashTable = new HashMap<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    System.out.println(hashTable);
  }
}

출력:

{3=Three, 2=Two, 1=One}

Java의HashMap에 null 저장

HashMap을 사용하면 null을 저장할 수 있습니다. 즉,HashMap에 null 키와 여러 null 값을 저장할 수 있습니다. 이 클래스는 컬렉션에 null이있을 때 유용합니다. 아래 예를 참조하십시오.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<Integer, String> hashTable = new HashMap<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    hashTable.put(null, "Four");
    hashTable.put(null, null);
    System.out.println(hashTable);
  }
}

출력:

{null=null, 1=One, 2=Two, 3=Three}

Java의Hashtable에 null 저장

Hashtable은 null 저장을 허용하지 않습니다. 이는Hashtable에 null을 저장할 수 없음을 의미합니다. 이 클래스는 컬렉션에 null이있는 경우 유용하지 않습니다. 아래 예를 참조하십시오.

널값이 저장되면NullPointerException예외가 발생합니다.

import java.util.Hashtable;

public class SimpleTesting {
  public static void main(String[] args) {
    Hashtable<Integer, String> hashTable = new Hashtable<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    hashTable.put(null, "Four");
    hashTable.put(null, null);
    System.out.println(hashTable);
  }
}

출력:

Exception in thread "main" java.lang.NullPointerException

관련 문장 - Java Hashtable

관련 문장 - Java HashMap