logo

Jak iterovat jakoukoli mapu v Javě

Obecně existují Pět způsoby iterace přes a Mapa v Javě. V tomto článku si je všechny probereme a podíváme se také na jejich výhody a nevýhody.
Za prvé, my nemůže iterujte mapu přímo pomocí iterátory , protože Mapy nejsou Sbírka. Než půjdete dále, musíte také něco vědět Mapa.Vstup rozhraní.
Protože všechny mapy v Javě implementují Mapa rozhraní, následující techniky budou fungovat pro jakoukoli implementaci map (HashMap, TreeMap, LinkedHashMap, Hashtable atd.)

1. Iterace přes Map.entrySet() pomocí cyklu For-Each :
Map.entrySet() metoda vrací pohled kolekce( Soubor ) mapování obsažených v této mapě. Můžeme tedy iterovat přes pár klíč-hodnota pomocí getKey() a getValue() metody Mapa.Vstup . Tato metoda je nejběžnější a měla by být použita, pokud potřebujete ve smyčce mapovat klíče i hodnoty. Níže je uveden java program, který to demonstruje.



Jáva


nový řádek v pythonu





// Java program to demonstrate iteration over> // Map.entrySet() entries using for-each loop> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// using for-each loop for iteration over Map.entrySet()> >for> (Map.Entry entry : gfg.entrySet())> >System.out.println(>'Key = '> + entry.getKey() +> >', Value = '> + entry.getValue());> >}> }>



>

>

Výstup:

Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>

2. Iterace přes klíče nebo hodnoty pomocí metod keySet() a values().
Map.keySet() metoda vrací Set zobrazení klíčů obsažených v této mapě a Map.values() metoda vrací pohled na kolekci hodnot obsažených v této mapě. Pokud tedy potřebujete pouze klíče nebo hodnoty z mapy, můžete iterovat sadu klíčů nebo hodnoty pomocí smyček for-each. Níže je uveden java program, který to demonstruje.

Jáva


stav git



// Java program to demonstrate iteration over> // Map using keySet() and values() methods> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// using keySet() for iteration over keys> >for> (String name : gfg.keySet())> >System.out.println(>'key: '> + name);> > >// using values() for iteration over values> >for> (String url : gfg.values())> >System.out.println(>'value: '> + url);> >}> }>

>

>

Výstup:

key: Quiz key: Practice key: GFG key: Code value: www.techcodeview.com value: practice.techcodeview.com value: techcodeview.com value: code.techcodeview.com>

3. Iterace pomocí iterátorů přes Mapa.Vstup
Tato metoda je trochu podobná té první. V první metodě používáme pro každou smyčku přes Map.Entry, ale zde používáme iterátory . Použití iterátorů přes Map.Entry má svou vlastní výhodu, tj. můžeme odstranit záznamy z mapy během iterace voláním iterator.remove() metoda.

Jáva




// Java program to demonstrate iteration over> // Map using keySet() and values() methods> > import> java.util.Map;> import> java.util.HashMap;> import> java.util.Iterator;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// using iterators> >Iterator itr = gfg.entrySet().iterator();> > >while>(itr.hasNext())> >{> >Map.Entry entry = itr.next();> >System.out.println(>'Key = '> + entry.getKey() +> >', Value = '> + entry.getValue());> >}> >}> }>

java int do řetězce

>

>

Výstup:

Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>

4. Použití metody forEach(action):
V Javě 8 můžete iterovat mapu pomocí Map.forEach(akce) způsob a použití lambda výraz . Tato technika je čistá a rychlá.

Jáva




// Java code illustrating iteration> // over map using forEach(action) method> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// forEach(action) method to iterate map> >gfg.forEach((k,v) ->System.out.println(>'Key = '> >+ k +>', Value = '> + v));> > >}> }>

>

>

Výstup :

Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>

5. Iterace přes klíče a hledání hodnot (neefektivní)
Zde nejprve provedeme smyčku přes klíče (pomocí Map.keySet() metoda) a poté vyhledejte hodnotu (pomocí Map.get (klíč) metoda) pro každý klíč. Tato metoda se v praxi nepoužívá, protože je poměrně pomalá a neefektivní, protože získávání hodnot pomocí klíče může být časově náročné.

výběr řazení java

Jáva




// Java program to demonstrate iteration> // over keys and searching for values> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// looping over keys> >for> (String name : gfg.keySet())> >{> >// search for value> >String url = gfg.get(name);> >System.out.println(>'Key = '> + name +>', Value = '> + url);> >}> >}> }>

>

>

Výstup:

Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>

Reference : Přetečení zásobníku