Razred java.util.Dictionary v Javi je abstrakten razred, ki predstavlja zbirko parov ključ-vrednost, kjer so ključi edinstveni in se uporabljajo za dostop do vrednosti. Bil je del ogrodja zbirk Java, predstavljenega v Javi 1.2, vendar ga je od Jave 1.2 večinoma nadomestil vmesnik java.util.Map.
Razred Dictionary je abstrakten razred in ga ni mogoče neposredno instancirati. Namesto tega ponuja osnovne operacije za dostop do parov ključ-vrednost, shranjenih v zbirki, ki jih implementira njegov konkretni podrazred java.util.Hashtable.
Razred Dictionary definira naslednje metode:
- get(ključ predmeta): Vrne vrednost, povezano z navedenim ključem v slovarju, ali nič, če ključa ni mogoče najti.
- put(ključ predmeta, vrednost predmeta): vstavi par ključ-vrednost v slovar. Če ključ že obstaja, je njegova ustrezna vrednost
- nadomesti z novo vrednostjo in vrne se stara vrednost. Če je ključ nov, je vrnjena vrednost null.
- remove(Object key): Odstrani par ključ-vrednost, povezan s podanim ključem, iz slovarja in vrne njegovo vrednost. Če ključa ni mogoče najti, se vrne vrednost null.
- size(): Vrne število parov ključ-vrednost, shranjenih v slovarju.
- isEmpty(): vrne true, če je slovar prazen, in false v nasprotnem primeru.
elements(): vrne oštevilčenje vrednosti, shranjenih v slovarju. - keys(): vrne oštevilčenje ključev, shranjenih v slovarju.
Tukaj je primer uporabe razreda Dictionary:
Java
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));> >}> >}> }> |
>
>Izhod
30 35 2 Key: Bob, Value: 30 Key: Charlie, Value: 40>
util.Slovar je abstrakten razred, ki predstavlja a ključ-vrednost odnos in deluje podobno kot zemljevid. Če imate ključ, lahko shranite vrednosti in po potrebi pridobite vrednost nazaj z njegovim ključem. Gre torej za seznam para ključ-vrednost.
Izjava
public abstract class Dictionary extends Object>
Konstruktorji:
Slovar() Edini konstruktor.
Razred java.util.Dictionary je razred v Javi, ki zagotavlja podatkovno strukturo ključ-vrednost, podobno vmesniku Map. Bil je del izvirnega ogrodja zbirk Java in je bil predstavljen v Javi 1.0.
Vendar je bil razred Dictionary od takrat ocenjen kot zastarel in njegova uporaba se na splošno odsvetuje. To je zato, ker je bil zasnovan pred uvedbo ogrodja Collections in ne izvaja vmesnika Map, zaradi česar je težko uporabljati v povezavi z drugimi deli ogrodja.
Na splošno je priporočljivo, da uporabite vmesnik Map ali eno od njegovih implementacij (na primer HashMap ali ConcurrentHashMap) namesto razreda Dictionary.
Tukaj je primer uporabe razreda Dictionary:
Java
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));> >}> >}> }> |
>
>Izhod
Value of A: 1 Key: A, Value: 1 Key: C, Value: 3>
Metode util.Dictionary Razred:
1. put(tipka K, vrednost V) : java.util.Dictionary.put(tipka K, vrednost V) doda par ključ-vrednost v slovar.
Sintaksa:
public abstract V put(K key, V value) Parameters : ->ključ -> vrednost Povratek : par ključ-vrednost, preslikan v slovar>
2. elementi() : java.util.Dictionary.elements() vrne predstavitev vrednosti v slovarju.
Sintaksa:
public abstract Enumeration elements() Parameters : -------- Return : value enumeration in dictionary>
3. get(ključ predmeta) : java.util.Dictionary.get(ključ predmeta) vrne vrednost, ki je preslikana z argumentiranim ključem v slovarju.
Sintaksa:
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() preveri, ali je slovar prazen ali ne.
Sintaksa:
public abstract boolean isEmpty() Parameters : ------ Return : true, if there is no key-value relation in the dictionary; else false>
5. tipke() : java.util.Dictionary.keys() vrne predstavitev ključa v slovarju.
Sintaksa:
public abstract Enumeration keys() Parameters : -------- Return : key enumeration in dictionary>
6. odstrani(predmetni ključ) : java.util.Dictionary.remove(predmetni ključ) odstrani par ključ-vrednost, preslikan z argumentiranim ključem.
Sintaksa:
public abstract V remove(Object key) Parameters : key : key to be removed Return : value mapped with the key>
7. velikost() : java.util.Dictionary.size() vrne št. parov ključ-vrednost v slovarju.
Sintaksa:
public abstract int size() Parameters : ------- Return : returns the no. of key-value pairs in the Dictionary>
Java
gumb na sredini css
// 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());> >}> }> |
>
>
Izhod:
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>
Prednosti slovarskega razreda:
- Podpora za podedovanje: Razred Slovar je bil del izvirnega ogrodja zbirk Java in je del Jave od samega začetka. To pomeni, da če imate podedovano kodo, ki uporablja slovar, jo lahko še vedno uporabite v svoji novi kodi.
- Enostaven za uporabo: Razred Dictionary je preprost za uporabo in zagotavlja osnovno funkcionalnost podatkovne strukture ključ-vrednost, ki je lahko uporabna v preprostih primerih.
Slabosti slovarskega razreda:
- Zastarelo: Razred Slovar velja za zastarelega in njegova uporaba se na splošno odsvetuje. To je zato, ker je bil zasnovan pred uvedbo ogrodja Collections in ne izvaja vmesnika Map, zaradi česar je težko uporabljati v povezavi z drugimi deli ogrodja.
- Omejena funkcionalnost: razred Slovar zagotavlja osnovno funkcionalnost podatkovne strukture ključ-vrednost, vendar ne zagotavlja celotnega nabora funkcionalnosti, ki je na voljo v vmesniku zemljevida in njegovih izvedbah.
- Ni varno glede tipov: Razred Dictionary uporablja razred Object za predstavitev tako ključev kot vrednosti, kar lahko vodi do neujemanja tipov in napak med izvajanjem.
Referenčne knjige:
- Java Collections Mauricea Naftalina in Philipa Wadlerja. Ta knjiga nudi celovit pregled ogrodja zbirk Java, vključno z razredom slovarja.
- Java na kratko David Flanagan. V tej knjigi je hitra referenca za osnovne funkcije Jave, vključno z razredom Dictionary.
- Java Generics and Collections Mauricea Naftalina in Philipa Wadlerja. Ta knjiga ponuja obsežen vodnik po generičnih in zbirkah v Javi, vključno z razredom Dictionary.