Java의 Dictionary 클래스는 키(key)/값(value) 쌍을 표현하는 추상 클래스(abstract class)로, Map 인터페이스와 유사한 방식으로 동작합니다. 이 클래스는 Java 초기 버전부터 존재해 온 레거시(legacy) 클래스에 해당합니다.
Dictionary 클래스에서 가장 핵심적인 두 가지 메서드는 keys()와 elements()입니다. 이 두 메서드는 각각 키와 값의 집합을 반환하며, Enumeration 객체를 통해 순회(iteration)할 수 있습니다. 그 외에도 자주 사용되는 메서드로는 isEmpty(), get(), remove(), size() 등이 있습니다.
문법(Syntax)
public abstract class Dictionary<K,V> extends Object
Dictionary는 추상 클래스이기 때문에 직접 인스턴스를 생성할 수 없으며, 일반적으로 하위 클래스인 Hashtable을 통해 객체를 생성하여 사용합니다.
예제 코드(Example)
import java.util.*;
public class DictionaryTest {
public static void main(String[] args) {
Dictionary<Integer, String> dic = new Hashtable<Integer, String>();
dic.put(1, "Adithya");
dic.put(2, "Jaidev");
dic.put(3, "Raja");
// keys() 메서드로 키 전체를 Enumeration으로 순회
Enumeration<Integer> key = dic.keys();
while(key.hasMoreElements()) {
System.out.println(key.nextElement());
}
// elements() 메서드로 값 전체를 Enumeration으로 순회
Enumeration<String> element = dic.elements();
while(element.hasMoreElements()) {
System.out.println(element.nextElement());
}
}
}실행 결과(Output)
3 2 1 Raja Jaidev Adithya
참고 사항
Dictionary 클래스는 현재 구식(legacy) API로 분류되어 있으며, 최신 Java 코드에서는 Map 인터페이스와 그 구현체인 HashMap, Hashtable 등을 사용하는 것이 권장됩니다. 다만 레거시 시스템 유지보수나 기존 코드 분석 시에는 Dictionary의 동작 방식을 이해해 두는 것이 도움이 됩니다.