Ako implementovať mapové rozhranie v Jave?



Tento článok o Java Map Inteface vám pomôže pochopiť, ako Map funguje v Jave, a predstaví vám rôzne triedy, ktoré implementujú Mapové rozhranie

Jednou z najzaujímavejších tém v Jave je rozhranie Map, ktorépredstavuje mapovanie medzi kľúčom a hodnotou.Často je nepochopené, že ide o podtyp rozhranie v Jave.Tento článok o rozhraní Java Map Interface vám pomôže pochopiť a osvojiť si, ako mapa funguje .

Ďalej sú uvedené témy, ktorým sa venuje tento článok:





Rozhranie mapy Java

Mapa v Jave je objekt ktorý mapuje kľúče na hodnoty a je navrhnutý pre rýchlejšie vyhľadávanie. Údaje sú uložené v pároch kľúč - hodnota a každý kľúč je jedinečný. Každý kľúč sa mapuje na hodnotu, a teda aj na mapu názvu. Tieto páry kľúč - hodnota sa nazývajú mapové záznamy.

Mapy v Jave - Rozhranie Java Map - Edureka



V , java.util.Map je ktorá obsahuje podpisy metód pre vkladanie, odstraňovanie a získavanie prvkov na základe kľúča. S takýmito metódami je to dokonalý nástroj, ktorý sa dá použiť na mapovanie asociácií kľúč - hodnota, ako sú napríklad slovníky.

Charakteristika mapového rozhrania

  • Rozhranie mapy nie je skutočným podtypom rozhrania kolekcie, pretojeho charakteristiky a správanie sa líšia od ostatných typov zbierok.
  • To poskytujetri pohľady na kolekciu - sada kľúčov, sada mapovaní kľúč-hodnota a kolekcia hodnôt.
  • TOMapanemôže obsahovať duplicitné kľúče a každý kľúč môže byť namapovaný na maximálne jednu hodnotu. Niektoré implementácie umožňujú nulový kľúč a nulovú hodnotu ( HashMap a LinkedHashMap ) ale niektoré nie ( TreeMap).
  • Rozhranie mapy nezaručuje poradie priradení, záleží to však na implementácii. Napríklad HashMap nezaručuje poradie priradení, ale TreeMap robí.
  • Trieda AbstractMap poskytuje skeletovú implementáciu rozhrania Java Map a väčšiny betónu Map triedy rozšíriť triedu AbstractMap a implementovať požadované metódy.

Teraz, keď máte predstavu, v čom je rozhranie mapy je, poďme do toho a pozrime sa na hierarchiu Java Map.

Hierarchia mapy Java

Mapu v jave implementujú dve rozhrania: Map a SortedMap. A populárne triedy implementácie Map v Jave sú HashMap, TreeMap a LinkedHashMap. Hierarchia mapy Java je uvedená nižšie:



Predtým, ako sa pozrieme na tri vyššie uvedené implementačné triedy rozhrania Java Map Interface, uvádzame niekoľko bežných metód, s ktorými sa môžete pri práci s mapou stretnúť.

Metódy v mapovom rozhraní Java

Metódy

Popis

public put (kľúč objektu, hodnota objektu)Táto metóda vloží položku na mapu
verejnévoid putAll (Mapa mapa)Táto metóda vloží zadanú mapu na túto mapu
verejný objekt odstrániť (kľúč objektu)Používa sa na odstránenie záznamu pre zadaný kľúč
public Set keySet ()Vráti zobrazenie Set, ktoré obsahuje všetky kľúče
public Set entrySet ()Vráti zobrazenie Set, ktoré obsahuje všetky kľúče a hodnoty
prázdne miesto jasné ()Používa sa na resetovanie mapy
public void putIfAbsent (kľúč K, hodnota V)Vloží zadanú hodnotu so zadaným kľúčom do mapy, iba ak ešte nie je zadaná
public Object get (kľúč objektu)Vráti hodnotu pre zadaný kľúč
public boolean containsKey (kľúč objektu)
Používa sa na vyhľadávanie zadaného kľúča z tejto mapy

Implementácie mapy

Je ich niekoľko ktoré implementujú Java Mapale tri hlavné a univerzálne implementácie súHashMap, TreeMap a LinkedHashMap.Pozrime sa na príklade charakteristík a správania každej implementácie

Trieda HashMap

Najbežnejšou triedou, ktorá implementuje rozhranie Java Map, je HashMap. Jedná sa o implementáciu rozhrania Map založenú na hašovacej tabuľke.Implementuje všetky operácie s mapoua umožňuje nulové hodnoty a jeden nulový kľúč. Táto trieda tiež neudržiava medzi svojimi prvkami žiadne poradie. Tu je ukážkový program demonštrujúci triedu HashMap.

balíček MyPackage import java.util. * trieda HashMapExample {public static void main (String [] args) {Mapové kurzy = nové HashMap () // Pridajte nejaké kurzy. courses.put ('Java Courses', new Integer (6)) courses.put ('Cloud Courses', new Integer (7)) courses.put ('Programming Courses', new Integer (5)) courses.put (' Kurzy dátových vied ', nové celé číslo (2)) System.out.println (' Celkový počet kurzov: '+ kurzy.size ()) Sadast = courses.entrySet () pre (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println () String searchKey = 'Java Courses' if (courses.containsKey (searchKey)) System.out.println ('Found total' + courses.get (searchKey) + '' + searchKey)}}

Výkon

Celkom kurzov: 4 Kurzy cloudu: 7 Programovacie kurzy: 5 Kurzy dátovej vedy: 2 Kurzy Java: 6 Celkovo nájdených 6 kurzov Java

Vo vyššie uvedenom programe som použil veľa metód uvedených v tabuľke. Po prvé, put () metóda vloží 4 položky do mapy a veľkosť () metóda v ďalšom kroku zobrazí veľkosť mapy (celkový pár kľúč - hodnota). Potom, v ďalšom kroku, entrySet () metóda vráti všetky páry kľúč - hodnota. Program tiež ukazuje, ako sa dá využiť dostať () metóda na vyhľadanie hodnoty pomocou priradeného kľúča.

Prejdime k ďalšej triede, ktorá implementuje rozhranie Java Map Interface - TreeMap.

Trieda TreeMap

Táto implementácia používa ako podklad červeno-čierny strom dátová štruktúra . Stromová mapa je zoradená podľa prirodzeného usporiadania svojich kľúčov alebo podľa komparátora poskytnutého v čase vytvorenia. Táto implementácia neumožňuje hodnoty null, ale zachovávaporiadok na jeho prvkoch. Tu je príklad programu demonštrujúceho triedu TreeMap.

balíček MyPackage import java.util. * class TreeMapEx {public static void main (String [] args) {Map courses = new TreeMap () // Pridajte nejaké kurzy. courses.put ('Java Courses', new Integer (3)) courses.put ('AWS Courses', new Integer (7)) courses.put ('Programming Courses', new Integer (8)) courses.put (' Kurzy dátových vied ', nové celé číslo (2)) System.out.println (' Celkový počet kurzov: '+ kurzy.size ()) Sadast = courses.entrySet () pre (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}

Výkon

Celkom kurzov: 4 Kurzy AWS: 7 Kurzy dátovej vedy: 2 Kurzy Java: 3 Kurzy programovania: 8

metódy triedy skenera v Jave

Na výstupe sú prvky mapy vytlačené v prísnom lexikografickom poradí, čo sa v predchádzajúcich príkladoch HashMap neobjavuje. Ďalšia trieda, o ktorej budeme diskutovať, je LinkedHashMap .

Trieda LinkedHashMap

Ako naznačuje názov, táto implementácia rozhrania Java Map používa ako základné dátové štruktúry hašovací stôl a prepojený zoznam. Poradie LinkedHashMap teda jepredvídateľné, s objednávkou vloženia ako predvolenou objednávkou. Tiež umožňuje nulové hodnoty ako v HashMap. Tu je ukážkový program demonštrujúci triedu TreeMap.

balíček MyPackage import java.util. * verejná trieda LinkedHashMapExample {public static void main (String a []) {LinkedHashMap courses = new LinkedHashMap () courses.put ('Java Courses', new Integer (3)) courses.put (' Cloud Courses ', new Integer (7)) courses.put (' Programming Courses ', new Integer (8)) courses.put (' Data Science Courses ', new Integer (2)) // Vytlačí prvky v rovnakom poradí // tak, ako boli vložené System.out.println (kurzy) System.out.println ('Celkový počet kurzov:' + courses.size ()) System.out.println ('Obsahuje kľúč' Hadoop '?' + courses.containsKey ('Hadoop')) System.out.println ('Získavanie hodnoty pre kľúčové' Programovacie kurzy ':' + courses.get ('Programovacie kurzy')) System.out.println ('Je mapa prázdna?' + Courses.isEmpty ()) System.out.println ('vymazať prvok' Cloud Courses ':' + courses.remove ('Cloud Courses')) System.out.println (kurzy)}}

Výkon

{Java Courses = 3, Cloud Courses = 7, Programming Courses = 8, Data Science Courses = 2} Celkom kurzov: 4 Obsahuje kľúč „Hadoop“? false Získanie hodnoty pre kľúčové 'Programovacie kurzy': 8 Je mapa prázdna? prvok nepravého mazania 'Cloud Courses': 7 {Java Courses = 3, Programming Courses = 8, Data Science Courses = 2}

Ukázkový program je celkom jednoduchý na pochopenie. Použil som niekoľko základných metód na demonštráciu fungovania LinkeHashMap v Jave. Ako som už povedal skôr, okrem týchto troch existuje veľa ďalších tried, ktoré implementujú rozhranie Java Map.

Týmto sa dostávame na koniec tohto článku o „Java Map Interface“. Prebral som jednu zo zaujímavých tém Javy, ktorou je Mapové rozhranie v Jave.

Určite cvičte čo najviac a obráťte sa na svoje skúsenosti.

Pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Sme tu, aby sme vám pomohli s každým krokom na vašej ceste. Okrem otázok týkajúcich sa tohto rozhovoru pre javu vymýšľame aj učebné osnovy určené pre študentov a profesionálov, ktorí sa chcú stať vývojármi v prostredí Java.

Máte na nás otázku? Uveďte to v sekcii komentárov tohto „rozhrania mapy Java“. článok a my sa vám ozveme čo najskôr.