Jak implementovat mapové rozhraní v Javě?



Tento článek o Java Map Inteface vám pomůže pochopit, jak Map funguje v Javě, a představí vám různé třídy, které implementují Mapové rozhraní

Jedním z nejzajímavějších témat v Javě je rozhraní Map, kterépředstavuje mapování mezi klíčem a hodnotou.Být podtypem je často nepochopeno rozhraní v Javě.Tento článek o rozhraní Java Map Interface vám pomůže pochopit a osvojit si, jak mapa funguje .

Níže jsou uvedena témata zahrnutá v tomto článku:





Rozhraní Java Map

Mapa v Javě je objekt který mapuje klíče na hodnoty a je určen pro rychlejší vyhledávání. Data jsou uložena v párech klíč – hodnota a každý klíč je jedinečný. Každý klíč se mapuje na hodnotu, a proto se mapuje název. Tyto páry klíč – hodnota se nazývají položky mapy.

Mapy v Javě - Java Map Interface - Edureka



V , java.util.Map je který zahrnuje podpisy metod pro vkládání, odebírání a načítání prvků na základě klíče. S takovými metodami je to perfektní nástroj, který lze použít pro mapování asociace klíč-hodnota, jako jsou slovníky.

Charakteristika mapového rozhraní

  • Rozhraní Map není skutečným podtypem rozhraní Collection, protojeho vlastnosti a chování se liší od ostatních typů kolekcí.
  • Poskytujetři pohledy na kolekci - sada klíčů, sada mapování klíč-hodnota a kolekce hodnot.
  • NAMapanemůže obsahovat duplicitní klíče a každý klíč lze mapovat maximálně na jednu hodnotu. Některé implementace umožňují nulový klíč a nulovou hodnotu ( HashMap a LinkedHashMap ) ale někteří ne ( TreeMap).
  • Rozhraní Map nezaručuje pořadí mapování, záleží však na implementaci. Například, HashMap nezaručuje pořadí mapování, ale TreeMap dělá.
  • Třída AbstractMap poskytuje základní implementaci rozhraní Java Map a většiny Map Map třídy rozšířit třídu AbstractMap a implementovat požadované metody.

Nyní, když máte představu, v čem je rozhraní Map je, pojďme se podívat na hierarchii Java Map.

Hierarchie map Java

Mapu v javě implementují dvě rozhraní: Map a SortedMap. A populární implementační třídy Map v Javě jsou HashMap, TreeMap , a LinkedHashMap. Hierarchie Java Map je uvedena níže:



Než se podíváme na tři třídy implementace rozhraní Java Map Interface zmíněné výše, uvádíme několik běžných metod, se kterými se můžete při práci s Mapou setkat.

Metody v rozhraní Java Map

Metody

Popis

public put (klíč objektu, hodnota objektu)Tato metoda vloží položku do mapy
veřejnostvoid putAll (Mapa mapy)Tato metoda vloží zadanou mapu do této mapy
public Object remove (klíč objektu)Slouží k odstranění položky pro zadaný klíč
public Set keySet ()Vrátí zobrazení Set obsahující všechny klíče
public Set entrySet ()Vrátí zobrazení Set obsahující všechny klíče a hodnoty
prázdnota clear ()Používá se k resetování mapy
public void putIfAbsent (klíč K, hodnota V)Vloží zadanou hodnotu se zadaným klíčem do mapy, pouze pokud již není zadána
public Object get (klíč objektu)Vrátí hodnotu pro zadaný klíč
public boolean containsKey (klíč objektu)
Slouží k vyhledávání zadaného klíče z této mapy

Implementace Map

Je jich několik které implementují Java Mapale tři hlavní a univerzální implementace jsouHashMap, TreeMap a LinkedHashMap.Podívejme se na charakteristiky a chování každé implementace na příkladu

Třída HashMap

Nejběžnější třídou, která implementuje rozhraní Java Map, je HashMap. Jedná se o implementaci rozhraní Map založenou na hašovací tabulce.Implementuje všechny operace Mapa umožňuje nulové hodnoty a jeden nulový klíč. Také tato třída neudržuje mezi svými prvky žádné pořadí. Zde je ukázkový program předvádějící třídu HashMap.

balíček MyPackage import java.util. * třída HashMapExample {public static void main (String [] args) {Map courses = new HashMap () // Přidat několik kurzů. courses.put ('Java Courses', new Integer (6)) courses.put ('Cloud Courses', new Integer (7)) courses.put ('Programming Courses', new Integer (5)) courses.put (' Kurzy datových věd ', nové Integer (2)) System.out.println (' Celkem kurzů: '+ kurzy.size ()) Sadast = courses.entrySet () pro (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ýstup

Celkem kurzů: 4 Kurzy cloudu: 7 Kurzy programování: 5 Kurzy datové vědy: 2 Kurzy Java: 6 Nalezeno celkem 6 kurzů Java

Ve výše uvedeném programu jsem použil mnoho metod zmíněných v tabulce. Za prvé dát() metoda vloží 4 položky do mapy a velikost() metoda v dalším kroku zobrazí velikost mapy (celkem párů klíč – hodnota). Poté, v dalším kroku, entrySet () metoda vrací všechny páry klíč – hodnota. Program také ukazuje, jak využít dostat() metoda hledání hodnoty pomocí přidruženého klíče.

Pojďme k další třídě, která implementuje rozhraní Java Map Interface - TreeMap.

Třída TreeMap

Tato implementace používá červeno-černý strom jako podklad datová struktura . TreeMap je tříděna podle přirozeného uspořádání svých klíčů nebo podle komparátoru poskytovaného v době vytvoření. Tato implementace neumožňuje hodnoty null, ale udržujeřád na jeho prvcích. Zde je ukázkový program předvádějící třídu TreeMap.

balíček MyPackage import java.util. * třída TreeMapEx {public static void main (String [] args) {Map courses = new TreeMap () // Přidat několik kurzů. courses.put ('Java Courses', new Integer (3)) courses.put ('AWS Courses', new Integer (7)) courses.put ('Programming Courses', new Integer (8)) courses.put (' Kurzy datových věd ', nové Integer (2)) System.out.println (' Celkem kurzů: '+ kurzy.size ()) Sadast = courses.entrySet () pro (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}

Výstup

Celkem kurzů: 4 Kurzy AWS: 7 Kurzů datové vědy: 2 Kurzy Java: 3 Kurzy programování: 8

k čemu se používá jarní framework

Ve výstupu jsou prvky mapy vytištěny v přísném lexikografickém pořadí, které se neobjevuje v předchozích příkladech HashMap. Další třída, o které budeme diskutovat, jsou LinkedHashMap .

LinkedHashMap třída

Jak název naznačuje, tato implementace rozhraní Java Map používá jako základní datové struktury tabulku hash a propojený seznam. Pořadí LinkedHashMap je tedypředvídatelné, s objednávkou vložení jako výchozí objednávkou. Také umožňuje nuly jako v HashMap. Zde je ukázkový program předvádějící třídu TreeMap.

balíček MyPackage import java.util. * veřejná třída 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)) // Tiskne prvky ve stejném pořadí // jak byly vloženy System.out.println (kurzy) System.out.println ('Celkem kurzů:' + courses.size ()) System.out.println ('Obsahuje klíč' Hadoop '?' + courses.containsKey ('Hadoop')) System.out.println ('Získání hodnoty pro klíčové' Programovací kurzy ':' + courses.get ('Programovací kurzy')) System.out.println ('Je mapa prázdná?' + Courses.isEmpty ()) System.out.println ('delete element' Cloud Courses ':' + courses.remove ('Cloud Courses')) System.out.println (courses)}}

Výstup

{Java Courses = 3, Cloud Courses = 7, Programming Courses = 8, Data Science Courses = 2} Celkem kurzů: 4 Obsahuje klíčový 'Hadoop'? false Získání hodnoty pro klíčové 'Programovací kurzy': 8 Je mapa prázdná? prvek nesprávného mazání 'Cloud Courses': 7 {Java Courses = 3, Programming Courses = 8, Data Science Courses = 2}

Ukázkový program je docela jednoduchý na pochopení. Použil jsem několik základních metod k prokázání fungování LinkeHashMap v Javě. Jak jsem řekl dříve, kromě těchto tří existuje spousta dalších tříd, které implementují rozhraní Java Map.

Tím se dostáváme na konec tohoto článku „Rozhraní Java Map Interface“. Pokryl jsem jedno ze zajímavých témat Javy, kterým je Mapové rozhraní v Javě.

Ujistěte se, že cvičíte co nejvíce a vraťte své zkušenosti.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Jsme tu, abychom vám pomohli s každým krokem na vaší cestě, abychom se kromě otázek týkajících se tohoto rozhovoru pro javu stali i učebním plánem, který je určen pro studenty a profesionály, kteří chtějí být vývojářem Java.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto „rozhraní Java Map“ článku a my se vám ozveme co nejdříve.