Java의 Java.util.Dictionary 클래스

Java의 java.util.Dictionary 클래스는 키-값 쌍의 컬렉션을 나타내는 추상 클래스입니다. 여기서 키는 고유하며 값에 액세스하는 데 사용됩니다. 이는 Java 1.2에 도입된 Java Collections Framework의 일부였지만 Java 1.2 이후에는 java.util.Map 인터페이스로 대체되었습니다.

Dictionary 클래스는 추상 클래스이므로 직접 인스턴스화할 수 없습니다. 대신, 컬렉션에 저장된 키-값 쌍에 액세스하기 위한 기본 작업을 제공하며, 이는 구체적인 하위 클래스 java.util.Hashtable에 의해 구현됩니다.

Dictionary 클래스는 다음 메서드를 정의합니다.

  1. get(Object key): 사전의 지정된 키와 연관된 값을 반환하거나 키를 찾을 수 없는 경우 null을 반환합니다.
  2. put(Object key, Object value): 사전에 키-값 쌍을 삽입합니다. 키가 이미 존재하는 경우 해당 값은 다음과 같습니다.
  3. 새 값으로 바뀌고 이전 값이 반환됩니다. 키가 새 키인 경우 null이 반환됩니다.
  4. 제거(객체 키): 사전에서 지정된 키와 연관된 키-값 쌍을 제거하고 해당 값을 반환합니다. 키를 찾을 수 없으면 null이 반환됩니다.
  5. size(): 사전에 저장된 키-값 쌍의 수를 반환합니다.
  6. isEmpty(): 사전이 비어 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
    elements(): 사전에 저장된 값의 열거를 반환합니다.
  7. 키(): 사전에 저장된 키의 열거를 반환합니다.

다음은 Dictionary 클래스를 사용하는 예입니다.

자바




import> java.util.Dictionary;> import> java.util.Enumeration;> import> java.util.Hashtable;> public> class> DictionaryExample {> > public> static> void> main(String[] args)> > {> > Dictionary dict=> new> Hashtable();> > dict.put(> 'Alice'> ,> 25> );> > dict.put(> 'Bob'> ,> 30> );> > dict.put(> 'Charlie'> ,> 35> );> > System.out.println(dict.get(> 'Bob'> ));> // 30> > int> oldValue = dict.put(> 'Charlie'> ,> 40> );> > System.out.println(oldValue);> // 35> > dict.remove(> 'Alice'> );> > System.out.println(dict.size());> // 2> > Enumeration k = dict.keys();> > while> (k.hasMoreElements()) {> > String key = k.nextElement();> > System.out.println(> 'Key: '> + key +> ', Value: '> > + dict.get(key));> > }> > }> }>

산출

30 35 2 Key: Bob, Value: 30 Key: Charlie, Value: 40 

유틸리티.사전 을 나타내는 추상 클래스입니다. 핵심 가치 관계 및 작동은 지도와 유사합니다. 키가 주어지면 값을 저장할 수 있으며 필요할 때 해당 키를 사용하여 값을 다시 검색할 수 있습니다. 따라서 이는 키-값 쌍의 목록입니다.

선언

public abstract class Dictionary extends Object 

생성자:
사전() 유일한 생성자.

java.util.Dictionary 클래스는 Map 인터페이스와 유사한 키-값 데이터 구조를 제공하는 Java 클래스입니다. 이는 원래 Java 컬렉션 프레임워크의 일부였으며 Java 1.0에서 도입되었습니다.

그러나 Dictionary 클래스는 이후 더 이상 사용되지 않는 것으로 간주되어 일반적으로 사용이 권장되지 않습니다. 이는 Collections 프레임워크 도입 이전에 설계되었으며 Map 인터페이스를 구현하지 않아 프레임워크의 다른 부분과 함께 사용하기 어렵기 때문입니다.

일반적으로 Dictionary 클래스 대신 Map 인터페이스나 해당 구현(예: HashMap 또는 ConcurrentHashMap) 중 하나를 사용하는 것이 좋습니다.

다음은 Dictionary 클래스를 사용하는 방법에 대한 예입니다.

자바




import> java.util.Dictionary;> import> java.util.Enumeration;> import> java.util.Hashtable;> public> class> Main {> > public> static> void> main(String[] args) {> > Dictionary dictionary => new> Hashtable();> > // Adding elements to the dictionary> > dictionary.put(> 'A'> ,> 1> );> > dictionary.put(> 'B'> ,> 2> );> > dictionary.put(> 'C'> ,> 3> );> > // Getting values from the dictionary> > int> valueA = dictionary.get(> 'A'> );> > System.out.println(> 'Value of A: '> + valueA);> > // Removing elements from the dictionary> > dictionary.remove(> 'B'> );> > // Enumerating the elements of the dictionary> > Enumeration keys = dictionary.keys();> > while> (keys.hasMoreElements()) {> > String key = keys.nextElement();> > System.out.println(> 'Key: '> + key +> ', Value: '> + dictionary.get(key));> > }> > }> }>

산출

Value of A: 1 Key: A, Value: 1 Key: C, Value: 3 

util.Dictionary 클래스의 메소드:

1. put(K 키, V 값) : java.util.Dictionary.put(K 키, V 값) 사전에 키-값 쌍을 추가합니다.

구문:

public abstract V put(K key, V value) Parameters :  ->키 -> 값 반환: 사전에 매핑된 키-값 쌍 

2. 요소() : java.util.Dictionary.elements() 사전의 값 표현을 반환합니다.

구문:

public abstract Enumeration elements() Parameters :  -------- Return :  value enumeration in dictionary 

3. get(객체 키) : java.util.Dictionary.get(객체 키) 사전의 인수 키와 매핑된 값을 반환합니다.

구문:

public abstract V get(Object key) Parameters :  key - key whose mapped value we want Return :  value mapped with the argumented key 

4. isEmpty() : java.util.Dictionary.isEmpty() 사전이 비어 있는지 확인합니다.

구문:

public abstract boolean isEmpty() Parameters :  ------ Return :  true, if there is no key-value relation in the dictionary; else false 

5. 키() : java.util.Dictionary.keys() 사전의 키 표현을 반환합니다.

구문:

public abstract Enumeration keys() Parameters :  -------- Return :  key enumeration in dictionary 

6. 제거(객체 키) : java.util.Dictionary.remove(객체 키) 인수된 키와 매핑된 키-값 쌍을 제거합니다.

구문:

public abstract V remove(Object key) Parameters :  key : key to be removed Return :  value mapped with the key 

7. 크기() : java.util.Dictionary.size() 아니오를 반환합니다. 사전의 키-값 쌍.

구문:

public abstract int size() Parameters :  ------- Return :  returns the no. of key-value pairs in the Dictionary 

자바




// Java Program explaining util.Dictionary class Methods> // put(), elements(), get(), isEmpty(), keys()> // remove(), size()> import> java.util.*;> public> class> New_Class> {> > public> static> void> main(String[] args)> > {> > // Initializing a Dictionary> > Dictionary geek => new> Hashtable();> > // put() method> > geek.put('> 123> ', 'Code');> > geek.put('> 456> ', 'Program');> > // elements() method :> > for> (Enumeration i = geek.elements(); i.hasMoreElements();)> > {> > System.out.println('Value in Dictionary : ' + i.nextElement());> > }> > // get() method :> > System.out.println(' Value at key => 6> : ' + geek.get('> 6> '));> > System.out.println('Value at key => 456> : ' + geek.get('> 123> '));> > // isEmpty() method :> > System.out.println(' There is no key-value pair : ' + geek.isEmpty() + ' ');> > // keys() method :> > for> (Enumeration k = geek.keys(); k.hasMoreElements();)> > {> > System.out.println('Keys in Dictionary : ' + k.nextElement());> > }> > // remove() method :> > System.out.println(' Remove : ' + geek.remove('> 123> '));> > System.out.println('Check the value of removed key : ' + geek.get('> 123> '));> > System.out.println(' Size of Dictionary : ' + geek.size());> > }> }>

산출:

Value in Dictionary : Code Value in Dictionary : Program Value at key = 6 : null Value at key = 456 : Code There is no key-value pair : false Keys in Dictionary : 123 Keys in Dictionary : 456 Remove : Code Check the value of removed key : null Size of Dictionary : 1 

Dictionary 클래스의 장점:

  1. 레거시 지원: Dictionary 클래스는 원래 Java 컬렉션 프레임워크의 일부였으며 처음부터 Java의 일부였습니다. 이는 사전을 사용하는 레거시 코드가 있는 경우 새 코드에서도 이를 계속 사용할 수 있음을 의미합니다.
  2. 사용이 간편함: Dictionary 클래스는 사용이 간편하며 간단한 경우에 유용할 수 있는 기본 키-값 데이터 구조 기능을 제공합니다.

Dictionary 클래스의 단점:

  1. 사용되지 않음: Dictionary 클래스는 사용되지 않는 것으로 간주되므로 일반적으로 사용하지 않는 것이 좋습니다. 이는 Collections 프레임워크 도입 이전에 설계되었으며 Map 인터페이스를 구현하지 않아 프레임워크의 다른 부분과 함께 사용하기 어렵기 때문입니다.
  2. 제한된 기능: Dictionary 클래스는 기본 키-값 데이터 구조 기능을 제공하지만 Map 인터페이스 및 해당 구현에서 사용할 수 있는 전체 기능 범위를 제공하지는 않습니다.
  3. 형식이 안전하지 않음: Dictionary 클래스는 Object 클래스를 사용하여 키와 값을 모두 나타내므로 형식 불일치 및 런타임 오류가 발생할 수 있습니다.

참고 도서:

  1. Maurice Naftalin과 Philip Wadler의 Java 컬렉션. 이 책은 Dictionary 클래스를 포함하여 Java 컬렉션 프레임워크에 대한 포괄적인 개요를 제공합니다.
  2. David Flanagan이 쓴 Java in 간단히 말해서. 이 책은 Dictionary 클래스를 포함하여 Java의 핵심 기능에 대한 빠른 참조를 제공합니다.
  3. Maurice Naftalin과 Philip Wadler가 작성한 Java Generics 및 컬렉션. 이 책은 Dictionary 클래스를 포함하여 Java의 제네릭과 컬렉션에 대한 포괄적인 가이드를 제공합니다.