JAVA/포스팅

자바 컬렉션 프레임워크 Hashtable

짜집퍼박사(짜박) 2023. 11. 18. 11:24

Hashtable은 Java 컬렉션 프레임워크에서 제공하는 클래스 중 하나로, 해시 테이블을 사용하여 데이터를 저장하는 맵(Map)을 구현한 클래스입니다. Hashtable은 동기화된 메서드로 구성되어 있어, 멀티스레드 환경에서 안전하게 사용할 수 있습니다.

 

1. Hashtable의 특징

- 키-값 쌍 저장: Hashtable은 키와 값의 쌍으로 데이터를 저장합니다. 각 키는 고유해야 하며, 각 키에 대응하는 값은 중복될 수 없습니다.
- 동기화(Synchronized): Hashtable은 동기화된 메서드로 구성되어 있어, 멀티스레드 환경에서 안전하게 사용할 수 있습니다. 하지만 이로 인해 성능이 일부 저하될 수 있습니다.
- 순서 없음: Hashtable은 요소의 순서를 보장하지 않습니다. 즉, 저장된 순서와 검색된 순서가 일치하지 않습니다.
- Null 불허용: Hashtable은 키와 값에 null을 허용하지 않습니다.

 

2. Hashtable의 주요 메서드

- put(K key, V value): 지정된 키와 값으로 맵에 쌍을 추가합니다.
- get(Object key): 지정된 키에 매핑된 값을 반환합니다.
- remove(Object key): 지정된 키에 매핑된 값을 제거합니다.
- containsKey(Object key): 지정된 키가 맵에 포함되어 있는지 확인합니다.
- containsValue(Object value): 지정된 값이 맵에 포함되어 있는지 확인합니다.
- size(): 맵에 포함된 키-값 쌍의 개수를 반환합니다.
- clear(): 맵에서 모든 키-값 쌍을 제거합니다.

 

Hashtable 사용 예제

import java.util.Hashtable;
import java.util.Map;

public class HashtableExample {
    public static void main(String[] args) {
        // Hashtable 생성
        Map<String, Integer> hashtable = new Hashtable<>();

        // 요소 추가
        hashtable.put("One", 1);
        hashtable.put("Two", 2);
        hashtable.put("Three", 3);
        hashtable.put("Four", 4);

        System.out.println("Hashtable: " + hashtable);

        // 요소 조회
        System.out.println("Value for key 'Two': " + hashtable.get("Two"));

        // 요소 제거
        hashtable.remove("Three");

        System.out.println("After removing 'Three': " + hashtable);

        // 특정 키가 포함되어 있는지 확인
        System.out.println("Contains key 'Four'? " + hashtable.containsKey("Four"));

        // 특정 값이 포함되어 있는지 확인
        System.out.println("Contains value 3? " + hashtable.containsValue(3));

        // 크기 확인
        System.out.println("Size: " + hashtable.size());

        // 모든 요소 제거
        hashtable.clear();

        System.out.println("After clearing: " + hashtable);
    }
}

위의 예제에서는 Hashtable을 생성하고 여러 메서드를 사용하여 요소를 추가, 제거, 조회, 확인 및 크기를 확인하는 등의 작업을 수행하였습니다. 출력 결과에서 볼 수 있듯이, Hashtable은 순서를 보장하지 않으므로 요소가 저장된 순서와 출력 순서가 다를 수 있습니다. 또한, Hashtable은 동기화된 메서드로 구성되어 있어 멀티스레드 환경에서 사용할 수 있습니다.

 

With ChatGPT