В Java, Речник е списъкът с двойки ключ-стойност. Можем да съхраняваме, извличаме, премахваме, получаваме и поставяме стойности в речника с помощта на класа Java Dictionary. В този раздел ще обсъдим Java Речник клас, който съхранява данни в двойки ключ-стойност точно като интерфейса Map.
Java Dictionary Class
Java Речник class е абстрактен клас родител на всеки клас. Принадлежи на java.util пакет. Неговият пряк известен подклас е Хеш таблица клас. Подобно на класа Hashtable, той също картографира ключовете към стойностите. Обърнете внимание, че всеки ключ и стойност е обект и всеки ненулев обект може да се използва като ключ и като стойност. Йерархията на класовете на речника е както следва:
хакерска обработка
Всеки ключ е свързан с най-много една стойност, както е показано на следващата фигура. След като стойността е съхранена в речников обект, можем да я извлечем с помощта на ключа.
Синтаксис:
public abstract class Dictionary extends Object
Забележка: Класът е остарял. Така че, внедрите интерфейса на картата, вместо да разширявате класа.
Конструктор на речникови класове
Класът има само конструктор, наречен a подметка конструктор.
Синтаксис:
public Dictionary()
Методи на класа на речника
Всички методи на класа Dictionary са абстрактно . Следната таблица описва методите.
Метод | Описание |
---|---|
публично абстрактно изброяване елементи() | Той връща изброяване на стойностите в този речник. Върнатият enum обект генерира всички елементи, съдържащи се в записи в този речник. |
публично абстрактно V get (обектен ключ) | Връща стойността, към която е съпоставен ключът в този речник. Той анализира обект (ключ) в този речник. Имайте предвид, че ако този речник съдържа запис за посочения ключ, се връща свързаната стойност; в противен случай се връща null. Той хвърля NullPointerException, ако ключът е нула. |
публично абстрактно булево isEmpty() | Методът проверява дали този речник не съпоставя ключове към стойност. Връща true, ако и само ако този речник не съдържа записи, в противен случай връща false. |
публични абстрактни ключове за изброяване() | Връща списък от ключовете в този речник. Върнатият enum обект генерира всички ключове, за които този речник съдържа записи. |
публично абстрактно V поставяне (клавиш 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); } }
Изход:
numpy сумиране
{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() можем да извлечем стойността на определен ключ.
преки пътища за linux
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().
Методът премахва ключа и съответната стойност, които сме анализирали в метода. Отстранената стойност се връща от метода.
nfa примери
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 и речника
Java HashMap класът и класът Речник изпълняват подобна функция. Единствената разлика е, че HashMap имплементира Map Interface, докато класът Dictionary не го прави . Според документацията на Java класът Dictionary вече не се използва, защото е остарял. Вместо класа Dictionary се използва класът HashMap. Тъй като можем да кажем, че HashMap е вид речник.