Клас Java.util.Dictionary в Java

Клас java.util.Dictionary у Java — це абстрактний клас, який представляє колекцію пар ключ-значення, де ключі є унікальними та використовуються для доступу до значень. Він був частиною Java Collections Framework, представленої в Java 1.2, але з Java 1.2 був значною мірою замінений інтерфейсом java.util.Map.

Клас Dictionary є абстрактним класом і не може бути створений безпосередньо. Натомість він забезпечує базові операції для доступу до пар ключ-значення, що зберігаються в колекції, які реалізовані його конкретним підкласом java.util.Hashtable.

Клас Dictionary визначає такі методи:

  1. get(ключ об’єкта): повертає значення, пов’язане з указаним ключем у словнику, або null, якщо ключ не знайдено.
  2. put(ключ об’єкта, значення об’єкта): вставляє пару ключ-значення до словника. Якщо ключ уже існує, його відповідне значення є
  3. замінюється новим значенням, і повертається старе значення. Якщо ключ новий, повертається значення null.
  4. remove(ключ об’єкта): видаляє зі словника пару ключ-значення, пов’язану з указаним ключем, і повертає її значення. Якщо ключ не знайдено, повертається значення null.
  5. size(): повертає кількість пар ключ-значення, що зберігаються в словнику.
  6. isEmpty(): повертає true, якщо словник порожній, і false в іншому випадку.
    elements(): Повертає перелік значень, що зберігаються в словнику.
  7. keys(): повертає перелік ключів, які зберігаються у словнику.

Ось приклад використання класу Dictionary:

Java




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 

util.Dictionary є абстрактним класом, що представляє a ключ-значення відношення і працює подібно до карти. Отримавши ключ, ви можете зберігати значення та за потреби отримати значення назад за допомогою його ключа. Таким чином, це список пари ключ-значення.

Декларація

public abstract class Dictionary extends Object 

Конструктори:
словник() Єдиний конструктор.

Клас java.util.Dictionary — це клас у Java, який надає структуру даних «ключ-значення», подібну до інтерфейсу Map. Він був частиною оригінальної структури Java Collections і був представлений у Java 1.0.

Однак клас Dictionary з тих пір вважається застарілим, і його використання, як правило, не рекомендується. Це пов’язано з тим, що він був розроблений до впровадження фреймворку Collections і не реалізує інтерфейс Map, що ускладнює його використання в поєднанні з іншими частинами фреймворку.

Загалом, рекомендується використовувати інтерфейс Map або одну з його реалізацій (наприклад, HashMap або ConcurrentHashMap) замість класу Dictionary.

Ось приклад використання класу Dictionary:

Java




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. elements() : 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. size() : java.util.Dictionary.size() повертає ні. пар ключ-значення в Словнику.

Синтаксис:

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

Java




// 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 

Переваги словникового класу:

  1. Підтримка застарілих версій: клас Dictionary був частиною оригінальної структури Java Collections і був частиною Java з самого початку. Це означає, що якщо у вас є застарілий код, який використовує словник, ви все ще можете використовувати його у своєму новому коді.
  2. Простий у користуванні: клас Dictionary простий у користуванні та надає базову структуру даних ключ-значення, що може бути корисним у простих випадках.

Недоліки класу Dictionary:

  1. Застарілий: клас Dictionary вважається застарілим, і його використання, як правило, не рекомендується. Це пов’язано з тим, що він був розроблений до впровадження фреймворку Collections і не реалізує інтерфейс Map, що ускладнює його використання в поєднанні з іншими частинами фреймворку.
  2. Обмежена функціональність: клас Dictionary надає базову функціональність структури даних 'ключ-значення', але не надає повного спектру функціональних можливостей, доступних в інтерфейсі Map та його реалізаціях.
  3. Небезпечний тип: клас Dictionary використовує клас Object для представлення як ключів, так і значень, що може призвести до невідповідності типів і помилок під час виконання.

Довідники:

  1. Колекції Java від Моріса Нафталіна та Філіпа Уодлера. У цій книзі представлено вичерпний огляд структури Java Collections, включаючи клас Dictionary.
  2. Java in Nutshell Девід Фланаган. У цій книзі наведено коротку довідку про основні функції Java, включаючи клас Dictionary.
  3. Java Generics and Collections by Maurice Naftalin і Philip Wadler. У цій книзі міститься вичерпний посібник із генериків і колекцій у Java, включаючи клас Dictionary.