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
'JAVA > 포스팅' 카테고리의 다른 글
자바 컬렉션 프레임워크 Properties (0) | 2023.11.19 |
---|---|
자바 컬렉션 프레임워크 TreeMap (0) | 2023.11.19 |
자바 컬렉션 프레임워크 HashMap (0) | 2023.11.18 |
자바 컬렉션 프레임워크 TreeSet (0) | 2023.11.18 |
자바 컬렉션 프레임워크 HashSet (0) | 2023.11.18 |