Klasa Java.util.Dictionary w Javie

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:

  1. get(Klucz obiektu): Zwraca wartość powiązaną z określonym kluczem w słowniku lub wartość null, jeśli klucz nie zostanie znaleziony.
  2. put(Klucz obiektu, Wartość obiektu): Wstawia parę klucz-wartość do słownika. Jeśli klucz już istnieje, odpowiada mu wartość
  3. zostaje zastąpiona nową wartością i zostaje zwrócona stara wartość. Jeśli klucz jest nowy, zwracana jest wartość null.
  4. 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.
  5. size(): Zwraca liczbę par klucz-wartość przechowywanych w słowniku.
  6. isEmpty(): Zwraca wartość true, jeśli słownik jest pusty, lub false w przeciwnym razie.
    elementy(): Zwraca wyliczenie wartości przechowywanych w słowniku.
  7. 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




// 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:

  1. 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.
  2. 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:

  1. 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.
  2. 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.
  3. 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:

  1. Kolekcje Java autorstwa Maurice'a Naftalina i Philipa Wadlera. Ta książka zawiera kompleksowy przegląd frameworku Java Collections, w tym klasy Dictionary.
  2. Java w pigułce Davida Flanagana. Książka ta zawiera krótkie omówienie podstawowych funkcji języka Java, w tym klasy Dictionary.
  3. 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.