Javalla, Sanakirja on luettelo avainarvo-pareista. Voimme tallentaa, hakea, poistaa, saada ja laittaa arvoja sanakirjaan käyttämällä Java-sanakirjaluokkaa. Tässä osiossa keskustelemme Java Sanakirja luokka, joka tallentaa tiedot avain-arvo-pareihin aivan kuten Map-käyttöliittymä.
Java-sanakirjaluokka
Java Sanakirja luokka on minkä tahansa luokan abstrakti luokan yläluokka. Se kuuluu java.util paketti. Sen suoraan tunnettu alaluokka on Hashtable luokkaa. Kuten Hashtable-luokka, se myös kartoittaa avaimet arvoihin. Huomaa, että jokainen avain ja arvo on objekti ja mitä tahansa ei-null-objektia voidaan käyttää avaimena ja arvona. Sanakirjan luokkahierarkia on seuraava:
java int merkkijonossa
Jokaiseen avaimeen liittyy enintään yksi arvo, kuten seuraavassa kuvassa näkyy. Kun arvo on tallennettu sanakirjaobjektiin, voimme hakea sen käyttämällä avainta.
Syntaksi:
public abstract class Dictionary extends Object
Huomaa: luokka on vanhentunut. Toteuta siis karttarajapinta luokan laajentamisen sijaan.
Sanakirjaluokan rakentaja
Luokassa on vain konstruktori nimeltä a pohja rakentaja.
Syntaksi:
public Dictionary()
Sanakirjaluokkamenetelmät
Kaikki Sanakirja-luokan menetelmät ovat abstrakti . Seuraavassa taulukossa kuvataan menetelmät.
Menetelmä | Kuvaus |
---|---|
julkinen abstrakti Luetteloelementit() | Se palauttaa luettelon tämän sanakirjan arvoista. Palautettu enum-objekti luo kaikki tämän sanakirjan merkintöjen sisältämät elementit. |
julkinen abstrakti V get (Objektiavain) | Se palauttaa arvon, johon avain on kartoitettu tässä sanakirjassa. Se jäsentää objektin (avaimen) tässä sanakirjassa. Huomaa, että jos tämä sanakirja sisältää merkinnän määritetylle avaimelle, siihen liittyvä arvo palautetaan. muussa tapauksessa palautetaan null. Se heittää NullPointerExceptionin, jos avain on tyhjä. |
julkinen abstrakti boolean isEmpty() | Menetelmä tarkistaa, onko tässä sanakirjassa mitään avaimia arvoon. Se palauttaa tosi, jos ja vain jos tämä sanakirja ei sisällä merkintöjä, muussa tapauksessa palauttaa epätosi. |
julkinen abstrakti Luetteloavaimet() | Se palauttaa luettelon tämän sanakirjan avaimista. Palautettu enum-objekti luo kaikki avaimet, joille tämä sanakirja sisältää merkintöjä. |
julkinen abstrakti V put(K-avain, V-arvo) | Menetelmää käytetään avain-arvo-parin lisäämiseen sanakirjaan. Se kartoittaa määritetyn avaimen tässä sanakirjassa määritettyyn arvoon. Huomaa, että avain tai arvo eivät voi olla nolla. Jos sanakirja sisältää jo merkinnän määritetylle avaimelle, palautetaan tämän avaimen sanakirjassa jo oleva arvo sen jälkeen, kun merkintä on muutettu sisältämään uusi elementti. Jos sanakirjassa ei vielä ole merkintää määritetylle avaimelle, määritetylle avaimelle ja arvolle luodaan merkintä ja palautetaan tyhjä. Se jäsentää avaimen ja arvon parametreina. Se heittää NullPointerExceptionin, jos avain tai arvo on tyhjä. |
julkinen abstrakti V poista (Objektiavain) | Menetelmä jäsentää avaimen, jonka haluamme poistaa. Se poistaa avaimen ja siihen liittyvän arvon. Huomaa, että menetelmä ei tee mitään, jos avain ei ole sanakirjassa. Se heittää NullPointerExceptionin, jos avain on tyhjä. |
julkinen abstrakti int koko() | Se palauttaa tämän sanakirjan merkintöjen määrän (erilliset avaimet). |
Java-sanakirjaohjelmat
Dictionary.put() -menetelmän käyttö
Put()-menetelmä lisää elementit sanakirjaan. Seuraava ohjelma osoittaa saman.
LisääElementExample.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); } }
Lähtö:
{108=Canberra, 107=Nelson Bay, 106=Mount Gambier, 105=Lismore, 104=Perth, 103=Melbourne, 102=Brisbane, 101=Sydney}
Dictionary.size() -menetelmän käyttö
Sanakirjan koko on sanakirjan sisältämien elementtien lukumäärä. Seuraavassa ohjelmassa sanakirjan koko on 6.
SanakirjaSizeExample.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()); } }
Lähtö:
The size of the dictionary is: 6
Dictionary.get()-menetelmän käyttö
Käyttämällä get()-menetelmää voimme noutaa määritetyn avaimen arvon.
SanakirjaGetElement.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)); } }
Lähtö:
The value of the specified key is: Melbourne
Dictionary.isEmpty()-menetelmän käyttö
Se palauttaa tosi, jos sanakirja on tyhjä, muussa tapauksessa palauttaa 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()); } }
Lähtö:
Is the dictionary empty? false
Dictionary.remove()-menetelmän käyttö
Metodi poistaa avaimen ja sitä vastaavan arvon, jonka olemme jäsentäneet menetelmässä. Poistettu arvo palautetaan menetelmällä.
PoistaElementExample.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)); } }
Lähtö:
javan nimeämiskäytännöt
The removed value is: Mount Gambier
Elementtien()- ja key()-menetelmien käyttö
PoistaElementExample.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()); } } }
Lähtö:
Dictionary values are: Canberra Nelson Bay Mount Gambier Lismore Perth Melbourne Brisbane Sydney Dictionary keys are: 108 107 106 105 104 103 102 101
Ero HashMap- ja sanakirjaluokan välillä
Java HashMap luokka ja Sanakirja-luokka suorittavat molemmat samanlaisen toiminnon. Ainoa ero on se HashMap toteuttaa karttaliittymän, kun taas Sanakirja-luokka ei . Java-dokumentaation mukaan Sanakirja-luokka ei ole enää käytössä, koska se on vanhentunut. Sanakirja-luokan sijasta käytetään HashMap-luokkaa. Koska voimme sanoa, että HashMap on eräänlainen sanakirja.