Klasa java.util.Dictionary w Javie to klasa abstrakcyjna reprezentująca zbiór par klucz-wartość, gdzie klucze są unikalne i służą do uzyskiwania dostępu do wartości. Była częścią środowiska Java Collections Framework wprowadzonego w Javie 1.2, ale od wersji Java 1.2 została w dużej mierze zastąpiona interfejsem java.util.Map.
Klasa Dictionary jest klasą abstrakcyjną i nie można jej bezpośrednio utworzyć. Zamiast tego zapewnia podstawowe operacje dostępu do par klucz-wartość przechowywanych w kolekcji, które są implementowane przez konkretną podklasę java.util.Hashtable.
Klasa Dictionary definiuje następujące metody:
- get(Klucz obiektu): Zwraca wartość powiązaną z określonym kluczem w słowniku lub wartość null, jeśli klucz nie zostanie znaleziony.
- put(Klucz obiektu, Wartość obiektu): Wstawia parę klucz-wartość do słownika. Jeśli klucz już istnieje, odpowiada mu wartość
- zostaje zastąpiona nową wartością i zostaje zwrócona stara wartość. Jeśli klucz jest nowy, zwracana jest wartość null.
- usuń (klucz obiektu): Usuwa ze słownika parę klucz-wartość powiązaną z określonym kluczem i zwraca jego wartość. Jeśli klucz nie zostanie znaleziony, zwracana jest wartość null.
- size(): Zwraca liczbę par klucz-wartość przechowywanych w słowniku.
- isEmpty(): Zwraca wartość true, jeśli słownik jest pusty, lub false w przeciwnym razie.
elementy(): Zwraca wyliczenie wartości przechowywanych w słowniku. - klucze(): Zwraca wyliczenie kluczy przechowywanych w słowniku.
Oto przykład użycia klasy Dictionary:
Jawa
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));> >}> >}> }> |
>
>Wyjście
30 35 2 Key: Bob, Value: 30 Key: Charlie, Value: 40>
util.Słownik jest klasą abstrakcyjną, reprezentującą a kluczowa wartość relację i działa podobnie do mapy. Mając klucz, możesz przechowywać wartości i w razie potrzeby odzyskać je za pomocą klucza. Jest to zatem lista par klucz-wartość.
Deklaracja
public abstract class Dictionary extends Object>
Konstruktorzy:
Słownik() Jedyny konstruktor.
Klasa java.util.Dictionary to klasa w języku Java udostępniająca strukturę danych typu klucz-wartość, podobną do interfejsu Map. Była częścią oryginalnego frameworka Java Collections i została wprowadzona w Javie 1.0.
Jednakże klasę Dictionary uznano od tego czasu za przestarzałą i ogólnie odradza się jej używanie. Dzieje się tak dlatego, że został on zaprojektowany przed wprowadzeniem frameworka Collections i nie implementuje interfejsu Map, co utrudnia jego użycie w połączeniu z innymi częściami frameworka.
Ogólnie rzecz biorąc, zamiast klasy Dictionary zaleca się użycie interfejsu Map lub jednej z jego implementacji (takich jak HashMap lub ConcurrentHashMap).
Oto przykład użycia klasy Dictionary:
Jawa
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));> >}> >}> }> |
>
>Wyjście
Value of A: 1 Key: A, Value: 1 Key: C, Value: 3>
Metody klasy util.Dictionary :
1. put(klawisz K, wartość V): java.util.Dictionary.put(klawisz K, wartość V) dodaje parę klucz-wartość do słownika.
Składnia:
public abstract V put(K key, V value) Parameters : ->klucz -> wartość Powrót: para klucz-wartość odwzorowana w słowniku>
2. elementy(): java.util.Dictionary.elements() zwraca reprezentację wartości w słowniku.
Składnia:
public abstract Enumeration elements() Parameters : -------- Return : value enumeration in dictionary>
3. get(Klucz obiektu): java.util.Dictionary.get(Klucz obiektu) zwraca wartość odwzorowaną za pomocą argumentowanego klucza w słowniku.
Składnia:
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() sprawdza, czy słownik jest pusty, czy nie.
Składnia:
public abstract boolean isEmpty() Parameters : ------ Return : true, if there is no key-value relation in the dictionary; else false>
5. klucze(): java.util.Dictionary.keys() zwraca kluczową reprezentację w słowniku.
Składnia:
public abstract Enumeration keys() Parameters : -------- Return : key enumeration in dictionary>
6. usuń (klucz obiektu): java.util.Dictionary.remove (klucz obiektu) usuwa parę klucz-wartość odwzorowaną za pomocą argumentowanego klucza.
Składnia:
public abstract V remove(Object key) Parameters : key : key to be removed Return : value mapped with the key>
7. rozmiar(): java.util.Dictionary.size() zwraca nr. par klucz-wartość w słowniku.
Składnia:
public abstract int size() Parameters : ------- Return : returns the no. of key-value pairs in the Dictionary>
Jawa
losowy kod c
// 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());> >}> }> |
>
>
Wyjście:
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>
Zalety klasy Dictionary:
- Obsługa starszych wersji: Klasa Dictionary była częścią oryginalnego frameworka Java Collections i od samego początku jest częścią języka Java. Oznacza to, że jeśli masz starszy kod korzystający ze słownika, nadal możesz go używać w nowym kodzie.
- Prosta w użyciu: Klasa Dictionary jest prosta w użyciu i zapewnia podstawową funkcjonalność struktury danych klucz-wartość, która może być użyteczna w prostych przypadkach.
Wady klasy Dictionary:
- Przestarzała: Klasa Dictionary jest uważana za przestarzałą i ogólnie odradza się jej używanie. Dzieje się tak dlatego, że został on zaprojektowany przed wprowadzeniem frameworka Collections i nie implementuje interfejsu Map, co utrudnia jego użycie w połączeniu z innymi częściami frameworka.
- Ograniczona funkcjonalność: Klasa Dictionary zapewnia podstawową funkcjonalność struktury danych klucz-wartość, ale nie zapewnia pełnego zakresu funkcjonalności dostępnego w interfejsie Map i jego implementacjach.
- Brak bezpieczeństwa typu: Klasa Dictionary używa klasy Object do reprezentowania zarówno kluczy, jak i wartości, co może prowadzić do niezgodności typów i błędów w czasie wykonywania.
Leksykony:
- Kolekcje Java autorstwa Maurice'a Naftalina i Philipa Wadlera. Ta książka zawiera kompleksowy przegląd frameworku Java Collections, w tym klasy Dictionary.
- Java w pigułce Davida Flanagana. Książka ta zawiera krótkie omówienie podstawowych funkcji języka Java, w tym klasy Dictionary.
- Generics and Collections w języku Java autorstwa Maurice'a Naftalina i Philipa Wadlera. Ta książka zawiera obszerny przewodnik po rodzajach generycznych i kolekcjach w Javie, łącznie z klasą Dictionary.