v Javě, Slovník je seznam párů klíč–hodnota. Hodnoty můžeme ukládat, načítat, odstraňovat, získávat a vkládat do slovníku pomocí třídy Java Dictionary. V této části budeme diskutovat o Jáva Slovník třída, která ukládá data v párech klíč-hodnota stejně jako rozhraní Map.
Třída slovníku Java
Jáva Slovník class je abstraktní třída nadřazená jakékoli třídě. Patří k java.util balík. Jeho přímo známá podtřída je Hashtable třída. Stejně jako třída Hashtable také mapuje klíče na hodnoty. Všimněte si, že každý klíč a hodnota je objekt a jakýkoli objekt, který není null, lze použít jako klíč a jako hodnotu. Hierarchie tříd Dictionary je následující:
Každému klíči je přiřazena nejvýše jedna hodnota, jak ukazuje následující obrázek. Jakmile je hodnota uložena v objektu slovníku, můžeme ji načíst pomocí klíče.
Syntax:
public abstract class Dictionary extends Object
Poznámka: Třída je zastaralá. Místo rozšiřování třídy tedy implementujte mapové rozhraní.
Konstruktor třídy slovníku
Třída má pouze konstruktor s názvem a jediný konstruktér.
Syntax:
zkus chytit javu
public Dictionary()
Metody třídy slovníku
Všechny metody třídy Dictionary jsou abstraktní . Následující tabulka popisuje metody.
Metoda | Popis |
---|---|
veřejný abstrakt Enumeration elements() | Vrátí výčet hodnot v tomto slovníku. Vrácený objekt enum generuje všechny prvky obsažené v položkách v tomto slovníku. |
veřejný abstrakt V get (klíč objektu) | Vrací hodnotu, na kterou je klíč mapován v tomto slovníku. Analyzuje objekt (klíč) v tomto slovníku. Všimněte si, že pokud tento slovník obsahuje položku pro zadaný klíč, je vrácena přidružená hodnota; jinak je vrácena hodnota null. Pokud je klíč null, vyvolá výjimku NullPointerException. |
veřejný abstraktní booleovský isEmpty() | Metoda kontroluje, zda tento slovník nemapuje žádné klíče na hodnotu. Vrací hodnotu true tehdy a pouze tehdy, pokud tento slovník neobsahuje žádné položky, jinak vrací hodnotu false. |
veřejný abstrakt Enumerační klíče() | Vrátí výčet klíčů v tomto slovníku. Vrácený objekt enum generuje všechny klíče, pro které tento slovník obsahuje položky. |
veřejný abstrakt V put (klíč K, hodnota V) | Metoda se používá k vložení páru klíč-hodnota do slovníku. Mapuje zadaný klíč na zadanou hodnotu v tomto slovníku. Všimněte si, že klíč ani hodnota nemohou být null. Pokud slovník již obsahuje položku pro zadaný klíč, po úpravě položky tak, aby obsahovala nový prvek, bude vrácena hodnota již v tomto slovníku pro tento klíč. Pokud slovník ještě nemá položku pro zadaný klíč, vytvoří se položka pro zadaný klíč a hodnotu a vrátí se null. Analyzuje klíč a hodnotu jako parametr. Pokud je klíč nebo hodnota null, vyvolá výjimku NullPointerException. |
public abstract V remove (Object key) | Metoda analyzuje klíč, který chceme odstranit. Odebere klíč a přidruženou hodnotu. Všimněte si, že metoda nedělá nic, pokud klíč není ve slovníku. Pokud je klíč null, vyvolá výjimku NullPointerException. |
public abstract int size() | Vrací počet záznamů (odlišných klíčů) v tomto slovníku. |
Slovníkové programy Java
Použití metody Dictionary.put().
Metoda put() vloží prvky do slovníku. Následující program ukazuje totéž.
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ýstup:
{108=Canberra, 107=Nelson Bay, 106=Mount Gambier, 105=Lismore, 104=Perth, 103=Melbourne, 102=Brisbane, 101=Sydney}
Použití metody Dictionary.size()
Velikost slovníku je počet prvků, které slovník obsahuje. V následujícím programu je velikost slovníku 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ýstup:
The size of the dictionary is: 6
Použití metody Dictionary.get().
Pomocí metody get() můžeme získat hodnotu zadaného klíče.
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ýstup:
The value of the specified key is: Melbourne
Použití metody Dictionary.isEmpty().
Pokud je slovník prázdný, vrátí hodnotu true, jinak vrátí 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ýstup:
Is the dictionary empty? false
Použití metody Dictionary.remove()
Metoda odstraní klíč a odpovídající hodnotu, kterou jsme v metodě analyzovali. Odebraná hodnota je vrácena metodou.
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ýstup:
The removed value is: Mount Gambier
Použití metod elements() 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ýstup:
Dictionary values are: Canberra Nelson Bay Mount Gambier Lismore Perth Melbourne Brisbane Sydney Dictionary keys are: 108 107 106 105 104 103 102 101
Rozdíl mezi třídou HashMap a Dictionary
Java HashMap třída a třída Dictionary plní podobnou funkci. Jediný rozdíl je v tom HashMap implementuje rozhraní mapy, zatímco třída Dictionary ne . Podle dokumentace Java se třída Dictionary již nepoužívá, protože je zastaralá. Místo třídy Dictionary je použita třída HashMap. Protože můžeme říci, že HashMap je druh slovníku.