У Java, Словник це список пар ключ-значення. Ми можемо зберігати, отримувати, видаляти, отримувати та поміщати значення в словник за допомогою класу Java Dictionary. У цьому розділі ми обговоримо Java Словник клас, який зберігає дані в парах ключ-значення так само, як інтерфейс Map.
Клас словника Java
Java Словник клас є абстрактним класом-батьком будь-якого класу. Це належить java.util пакет. Його прямим відомим підкласом є Хеш-таблиця клас. Як і клас Hashtable, він також відображає ключі на значення. Зауважте, що кожен ключ і значення є об’єктом, а будь-який ненульовий об’єкт можна використовувати як ключ і значення. Ієрархія класів словника така:
приклад формату json
Кожен ключ пов’язано щонайбільше з одним значенням, як показано на малюнку нижче. Коли значення збережено в об’єкті словника, ми можемо отримати його за допомогою ключа.
Синтаксис:
public abstract class Dictionary extends Object
Примітка: клас застарів. Отже, реалізуйте інтерфейс карти замість розширення класу.
Конструктор класу словника
Клас має лише конструктор, який називається a підошва конструктор.
Синтаксис:
public Dictionary()
Словник Методи класу
Усі методи класу Dictionary є анотація . У наступній таблиці описані методи.
метод | опис |
---|---|
public abstract Enumeration elements() | Він повертає перелік значень у цьому словнику. Повернений об’єкт enum генерує всі елементи, що містяться в записах цього словника. |
public abstract V get (об'єктний ключ) | Він повертає значення, якому зіставлено ключ у цьому словнику. Він аналізує об’єкт (ключ) у цьому словнику. Зауважте, що якщо цей словник містить запис для вказаного ключа, повертається відповідне значення; інакше повертається значення null. Він викидає NullPointerException, якщо ключ нульовий. |
загальнодоступний абстрактний логічний isEmpty() | Метод перевіряє, чи не зіставляє цей словник ключі зі значенням. Він повертає істину тоді і тільки якщо цей словник не містить записів, інакше повертає хибність. |
відкритий абстрактний ключ перерахування() | Він повертає перелік ключів у цьому словнику. Повернений об’єкт enum генерує всі ключі, для яких цей словник містить записи. |
відкритий абстрактний V put (клавіша K, значення V) | Метод використовується для вставки пари ключ-значення в словник. Він відображає вказаний ключ на вказане значення в цьому словнику. Зауважте, що ні ключ, ні значення не можуть бути нульовими. Якщо словник уже містить запис для вказаного ключа, повертається значення, яке вже є в цьому словнику для цього ключа, після зміни запису, щоб містити новий елемент. Якщо словник ще не має запису для вказаного ключа, запис створюється для вказаного ключа та значення, і повертається значення null. Він аналізує ключ і значення як параметр. Він викидає NullPointerException, якщо ключ або значення є null. |
відкритий абстрактний V видалити (об'єктний ключ) | Метод аналізує ключ, який ми хочемо видалити. Він видаляє ключ і пов’язане значення. Зауважте, що метод нічого не робить, якщо ключа немає в словнику. Він викидає NullPointerException, якщо ключ нульовий. |
public abstract int size() | Він повертає кількість записів (окремих ключів) у цьому словнику. |
Програми-словники Java
Використання методу Dictionary.put().
Метод put() вставляє елементи в словник. Наступна програма демонструє те саме.
InsertElementExample.java
import java.util.*; public class InsertElementExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(105, 'Lismore'); dict.put(106, 'Mount Gambier'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); //prints keys and corresponding values System.out.println(dict); } }
Вихід:
рядок java indexof
{108=Canberra, 107=Nelson Bay, 106=Mount Gambier, 105=Lismore, 104=Perth, 103=Melbourne, 102=Brisbane, 101=Sydney}
Використання методу Dictionary.size().
Розмір словника - це кількість елементів, які містить словник. У наступній програмі розмір словника становить 6.
DictionarySizeExample.java
import java.util.*; public class DictionarySizeExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); //prints the size of the dictionary System.out.println('The size of the dictionary is: '+dict.size()); } }
Вихід:
The size of the dictionary is: 6
Використання методу Dictionary.get().
Використовуючи метод get(), ми можемо отримати значення вказаного ключа.
видалити файл в java
DictionaryGetElement.java
import java.util.*; public class DictionaryGetElement { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); //gets the value of the specified key System.out.println('The value of the specified key is: '+dict.get(103)); } }
Вихід:
The value of the specified key is: Melbourne
Використання методу Dictionary.isEmpty().
Він повертає true, якщо словник порожній, інакше повертає false.
EmptyCheckExample.java
import java.util.*; public class EmptyCheckExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); //checks if the dictionary is empty or not System.out.println('Is the dictionary empty? '+dict.isEmpty()); } }
Вихід:
Is the dictionary empty? false
Використання методу Dictionary.remove().
Метод видаляє ключ і відповідне значення, які ми розібрали в методі. Вилучене значення повертається методом.
java elseif
RemoveElementExample.java
import java.util.*; public class RemoveElementExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(108, 'Canberra'); dict.put(106, 'Mount Gambier'); dict.put(104, 'Perth'); dict.put(102, 'Brisbane'); //removes the corresponding value of the specified key System.out.println('The removed value is: '+dict.remove(106)); } }
Вихід:
The removed value is: Mount Gambier
Використання методів elements() і key().
RemoveElementExample.java
import java.util.*; public class IterateKeyAndValuesExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(105, 'Lismore'); dict.put(106, 'Mount Gambier'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); System.out.println('Dictionary values are: '); //loop iterate over the values stored in the dictionary for(Enumeration enm = dict.elements(); enm.hasMoreElements();) { //prints the value System.out.println(enm.nextElement()); } System.out.println(' Dictionary keys are: '); //loop iterate over the keys stored in the dictionary for(Enumeration enm = dict.keys(); enm.hasMoreElements();) { //prints the keys System.out.println(enm.nextElement()); } } }
Вихід:
Dictionary values are: Canberra Nelson Bay Mount Gambier Lismore Perth Melbourne Brisbane Sydney Dictionary keys are: 108 107 106 105 104 103 102 101
Різниця між класом HashMap і Dictionary
Ява HashMap клас і клас Dictionary виконують однакову функцію. Єдина різниця в тому, що HashMap реалізує інтерфейс карти, а клас Dictionary — ні . Відповідно до документації Java, клас Dictionary більше не використовується, оскільки він застарів. Замість класу Dictionary використовується клас HashMap. Так як можна сказати, що HashMap є різновидом словника.