v Jave Slovník je zoznam párov kľúč – hodnota. Pomocou triedy Java Dictionary môžeme ukladať, získavať, odstraňovať, získavať a vkladať hodnoty do slovníka. V tejto časti budeme diskutovať o Java Slovník trieda, ktorá ukladá údaje v pároch kľúč – hodnota rovnako ako rozhranie mapy.
Trieda slovníka Java
Java Slovník class je abstraktná rodičovská trieda akejkoľvek triedy. Patrí k java.util balík. Jeho priamo známa podtrieda je Hashtable trieda. Podobne ako trieda Hashtable aj ona mapuje kľúče k hodnotám. Všimnite si, že každý kľúč a hodnota je objekt a ako kľúč a ako hodnotu možno použiť akýkoľvek iný objekt ako hodnotu. Hierarchia tried Dictionary je nasledovná:
Každý kľúč je spojený maximálne s jednou hodnotou, ako je znázornené na nasledujúcom obrázku. Keď je hodnota uložená v objekte slovníka, môžeme ju získať pomocou kľúča.
Syntax:
public abstract class Dictionary extends Object
Poznámka: Trieda je zastaraná. Takže namiesto rozšírenia triedy implementujte mapové rozhranie.
Konštruktor tried slovníka
Trieda má iba konštruktor s názvom a jediným konštruktér.
Syntax:
public Dictionary()
Slovník triednych metód
Všetky metódy triedy Dictionary sú abstraktné . Nasledujúca tabuľka popisuje metódy.
Metóda | Popis |
---|---|
verejný abstrakt Enumeration elements() | Vráti zoznam hodnôt v tomto slovníku. Vrátený objekt enum generuje všetky prvky obsiahnuté v záznamoch v tomto slovníku. |
verejný abstrakt V get (kľúč objektu) | Vráti hodnotu, na ktorú je kľúč namapovaný v tomto slovníku. Analyzuje objekt (kľúč) v tomto slovníku. Všimnite si, že ak tento slovník obsahuje položku pre zadaný kľúč, vráti sa pridružená hodnota; v opačnom prípade sa vráti hodnota null. Vyhodí výnimku NullPointerException, ak je kľúč null. |
verejný abstrakt boolean isEmpty() | Metóda skontroluje, či tento slovník nemapuje žiadne kľúče na hodnotu. Vráti hodnotu true vtedy a len vtedy, ak tento slovník neobsahuje žiadne položky, inak vráti hodnotu false. |
verejný abstrakt Enumeračné kľúče() | Vráti zoznam kľúčov v tomto slovníku. Vrátený objekt enum generuje všetky kľúče, pre ktoré tento slovník obsahuje položky. |
verejný abstrakt V put (kľúč K, hodnota V) | Metóda sa používa na vloženie páru kľúč – hodnota do slovníka. Mapuje zadaný kľúč na zadanú hodnotu v tomto slovníku. Upozorňujeme, že kľúč ani hodnota nemôžu byť nulové. Ak slovník už obsahuje položku pre zadaný kľúč, po úprave položky tak, aby obsahovala nový prvok, sa vráti hodnota, ktorá sa pre daný kľúč už nachádza v tomto slovníku. Ak slovník ešte nemá položku pre zadaný kľúč, vytvorí sa položka pre zadaný kľúč a hodnotu a vráti sa null. Ako parameter analyzuje kľúč a hodnotu. Vyhodí výnimku NullPointerException, ak je kľúč alebo hodnota null. |
verejný abstrakt V odstrániť (kľúč objektu) | Metóda analyzuje kľúč, ktorý chceme odstrániť. Odstráni kľúč a pridruženú hodnotu. Všimnite si, že metóda nerobí nič, ak kľúč nie je v slovníku. Vyhodí výnimku NullPointerException, ak je kľúč null. |
public abstract int size() | Vráti počet záznamov (rozdielnych kľúčov) v tomto slovníku. |
Slovníkové programy Java
Použitie metódy Dictionary.put().
Metóda put() vloží prvky do slovníka. Nasledujúci program ukazuje to isté.
jlist
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); } }
Výkon:
pridanie java do poľa
{108=Canberra, 107=Nelson Bay, 106=Mount Gambier, 105=Lismore, 104=Perth, 103=Melbourne, 102=Brisbane, 101=Sydney}
Použitie metódy Dictionary.size().
Veľkosť slovníka je počet prvkov, ktoré slovník obsahuje. V nasledujúcom programe je veľkosť slovníka 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()); } }
Výkon:
The size of the dictionary is: 6
Použitie metódy Dictionary.get().
Pomocou metódy get() môžeme získať hodnotu zadaného kľúča.
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)); } }
Výkon:
The value of the specified key is: Melbourne
Použitie metódy Dictionary.isEmpty().
Ak je slovník prázdny, vráti hodnotu true, inak vráti hodnotu 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()); } }
Výkon:
Is the dictionary empty? false
Použitie metódy Dictionary.remove().
Metóda odstráni kľúč a zodpovedajúcu hodnotu, ktorú sme analyzovali v metóde. Odstránená hodnota je vrátená metódou.
zoznam štátov
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)); } }
Výkon:
The removed value is: Mount Gambier
Použitie metód elementov() a 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()); } } }
Výkon:
Dictionary values are: Canberra Nelson Bay Mount Gambier Lismore Perth Melbourne Brisbane Sydney Dictionary keys are: 108 107 106 105 104 103 102 101
Rozdiel medzi triedou HashMap a Dictionary
Java HashMap trieda a trieda Slovník majú podobnú funkciu. Jediný rozdiel je v tom HashMap implementuje rozhranie mapy, zatiaľ čo trieda Dictionary nie . Podľa dokumentácie Java sa trieda Dictionary už nepoužíva, pretože je zastaraná. Namiesto triedy Dictionary sa používa trieda HashMap. Keďže môžeme povedať, že HashMap je typ slovníka.