Třída java.util.Dictionary v Javě je abstraktní třída, která představuje kolekci párů klíč-hodnota, kde jsou klíče jedinečné a používají se k přístupu k hodnotám. Byl součástí Java Collections Framework představeného v Javě 1.2, ale byl z velké části nahrazen rozhraním java.util.Map od Java 1.2.
Třída Dictionary je abstraktní třída a nelze ji přímo vytvořit. Místo toho poskytuje základní operace pro přístup k párům klíč-hodnota uloženým v kolekci, které jsou implementovány její konkrétní podtřídou java.util.Hashtable.
Třída Dictionary definuje následující metody:
- get(Object key): Vrátí hodnotu spojenou se zadaným klíčem ve slovníku nebo null, pokud klíč nebyl nalezen.
- put(klíč objektu, hodnota objektu): Vloží pár klíč-hodnota do slovníku. Pokud klíč již existuje, jeho odpovídající hodnota je
- nahrazena novou hodnotou a vrátí se stará hodnota. Pokud je klíč nový, vrátí se null.
- remove(Object key): Odebere pár klíč-hodnota spojený se zadaným klíčem ze slovníku a vrátí jeho hodnotu. Pokud klíč není nalezen, je vrácena hodnota null.
- size(): Vrátí počet párů klíč–hodnota uložených ve slovníku.
- isEmpty(): Vrací true, pokud je slovník prázdný, a false v opačném případě.
elements(): Vrací výčet hodnot uložených ve slovníku. - keys(): Vrací výčet klíčů uložených ve slovníku.
Zde je příklad použití třídy Dictionary:
Jáva
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));> > }> > }> }> |
>
>Výstup
30 35 2 Key: Bob, Value: 30 Key: Charlie, Value: 40>
util.Slovník je abstraktní třída představující a klíč-hodnota vztah a funguje podobně jako mapa. Danému klíči můžete uložit hodnoty a v případě potřeby hodnotu získat zpět pomocí jeho klíče. Jedná se tedy o seznam páru klíč-hodnota.
Prohlášení
public abstract class Dictionary extends Object>
Konstruktéři:
Slovník() Jediný konstruktér.
Třída java.util.Dictionary je třída v Javě, která poskytuje datovou strukturu klíč-hodnota, podobnou rozhraní Map. Byl součástí původního rámce Java Collections a byl představen v Javě 1.0.
Třída Dictionary je však od té doby považována za zastaralou a její používání se obecně nedoporučuje. Je to proto, že byl navržen před zavedením frameworku Collections a neimplementuje rozhraní Map, což ztěžuje použití ve spojení s jinými částmi frameworku.
Obecně se doporučuje místo třídy Dictionary používat rozhraní Map nebo některou z jeho implementací (jako je HashMap nebo ConcurrentHashMap).
Zde je příklad, jak používat třídu Dictionary:
Jáva
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));> > }> > }> }> |
>
>Výstup
Value of A: 1 Key: A, Value: 1 Key: C, Value: 3>
Metody třídy util.Dictionary :
1. put(klíč K, hodnota V) : java.util.Dictionary.put(klíč K, hodnota V) přidá pár klíč–hodnota do slovníku.
Syntaxe:
public abstract V put(K key, V value) Parameters : ->key -> value Return : pár klíč-hodnota mapovaný ve slovníku>
2. elements() : java.util.Dictionary.elements() vrátí reprezentaci hodnoty ve slovníku.
Syntaxe:
public abstract Enumeration elements() Parameters : -------- Return : value enumeration in dictionary>
3. get (klíč objektu) : java.util.Dictionary.get (klíč objektu) vrátí hodnotu, která je mapována s argumentovaným klíčem ve slovníku.
Syntaxe:
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() kontroluje, zda je slovník prázdný nebo ne.
Syntaxe:
public abstract boolean isEmpty() Parameters : ------ Return : true, if there is no key-value relation in the dictionary; else false>
5. keys(): java.util.Dictionary.keys() vrátí reprezentaci klíče ve slovníku.
Syntaxe:
public abstract Enumeration keys() Parameters : -------- Return : key enumeration in dictionary>
6. remove (klíč objektu) : java.util.Dictionary.remove (klíč objektu) odstraní pár klíč-hodnota namapovaný argumentovaným klíčem.
Syntaxe:
public abstract V remove(Object key) Parameters : key : key to be removed Return : value mapped with the key>
7. size() : java.util.Dictionary.size() vrací ne. párů klíč–hodnota ve Slovníku.
Syntaxe:
public abstract int size() Parameters : ------- Return : returns the no. of key-value pairs in the Dictionary>
Jáva
windows.open javascript
// 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());> > }> }> |
>
>
Výstup:
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>
Výhody třídy Slovník:
- Podpora starších verzí: Třída Dictionary byla součástí původního frameworku Java Collections a byla součástí Javy od začátku. To znamená, že pokud máte starší kód, který používá Slovník, můžete jej stále používat ve svém novém kódu.
- Jednoduché použití: Třída Dictionary se snadno používá a poskytuje základní funkce datové struktury klíč-hodnota, což může být užitečné v jednoduchých případech.
Nevýhody třídy Dictionary:
- Zastaralá: Třída Dictionary je považována za zastaralou a její používání se obecně nedoporučuje. Je to proto, že byl navržen před zavedením frameworku Collections a neimplementuje rozhraní Map, což ztěžuje použití ve spojení s jinými částmi frameworku.
- Omezená funkčnost: Třída Dictionary poskytuje základní funkce datové struktury klíč–hodnota, ale neposkytuje celou řadu funkcí, které jsou dostupné v rozhraní Map a jeho implementacích.
- Není typově bezpečné: Třída Dictionary používá třídu Object k reprezentaci klíčů i hodnot, což může vést k neshodě typů a chybám za běhu.
Referenční knihy:
- Java Collections od Maurice Naftalina a Philipa Wadlera. Tato kniha poskytuje komplexní přehled o frameworku Java Collections, včetně třídy Dictionary.
- Java v kostce od Davida Flanagana. Tato kniha poskytuje rychlý odkaz na základní funkce Javy, včetně třídy Dictionary.
- Java Generics and Collections od Maurice Naftalina a Philipa Wadlera. Tato kniha poskytuje komplexního průvodce generikami a kolekcemi v Javě, včetně třídy Dictionary.