728x90
Java의 Hashtable은 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료 구조입니다. Hashtable은 해시 테이블(hash table)을 사용하여 구현되어 있으며, 키를 해시 함수를 이용하여 해시코드로 변환한 다음, 해당 해시코드에 해당하는 버킷(bucket)에 값을 저장합니다. 이를 통해 빠른 검색 및 삽입이 가능합니다.
Hashtable은 다음과 같은 특징을 가지고 있습니다.
- 키와 값은 모두 Object 타입으로 저장됩니다.
- Hashtable의 초기 용량(capacity)은 11이며, 런타임에 자동으로 늘어납니다.
- Hashtable은 스레드 안전(thread-safe)하게 동작합니다. 따라서, 동시에 여러 스레드에서 사용해도 문제가 발생하지 않습니다.
- Hashtable은 순서를 보장하지 않습니다. 따라서, 키와 값을 순서대로 처리해야 하는 경우에는 LinkedHashMap 등 다른 자료 구조를 사용해야 합니다.
다음은 Hashtable의 간단한 예시 코드입니다.
import java.util.Hashtable;
public class HashtableExample {
public static void main(String[] args) {
// Hashtable 생성
Hashtable<Integer, String> hashtable = new Hashtable<Integer, String>();
// 데이터 추가
hashtable.put(1, "apple");
hashtable.put(2, "banana");
hashtable.put(3, "orange");
// 데이터 검색
String fruit = hashtable.get(2);
System.out.println(fruit); // 출력: banana
// 데이터 삭제
hashtable.remove(3);
// 모든 데이터 출력
for (Integer key : hashtable.keySet()) {
System.out.println(key + ": " + hashtable.get(key));
}
}
}
위 코드에서는 Hashtable을 생성한 후, put() 메서드를 이용하여 데이터를 추가하고, get() 메서드를 이용하여 특정 키에 해당하는 값을 검색하고, remove() 메서드를 이용하여 데이터를 삭제하는 방법을 보여줍니다. 마지막으로, keySet() 메서드를 이용하여 모든 키를 순회하면서 데이터를 출력합니다.
Hashtable은 HashMap과 유사한 기능을 제공하며, 스레드 안전성이 보장되는 특징을 가지고 있습니다. 따라서, 동시에 여러 스레드에서 사용해야 하는 경우에는 Hashtable을 사용하는 것이 좋습니다.
728x90
'Programming > Java' 카테고리의 다른 글
[Java] 문자열 거꾸로 출력하기 (0) | 2023.02.26 |
---|---|
[Java] Hashtable vs Map (0) | 2023.02.26 |
[Java] 다형성 (0) | 2023.02.24 |
[Java] 팩토리얼 계산하는 코드 만들기 (0) | 2023.02.23 |
[Java] 버전 크기를 비교하는 코드 만들기 (Semantic version) (0) | 2023.02.23 |