logo

Kaip kartoti bet kokį žemėlapį „Java“.

Paprastai yra penkios kartojimo būdai per a Žemėlapis Java kalboje. Šiame straipsnyje aptarsime juos visus, taip pat apžvelgsime jų privalumus ir trūkumus.
Visų pirma, mes negali kartokite žemėlapį tiesiogiai naudodami iteratoriai , nes žemėlapis nėra Kolekcija. Taip pat prieš eidami toliau, turite šiek tiek žinoti apie Žemėlapis.Įėjimas sąsaja.
Kadangi visi „Java“ žemėlapiai įgyvendinami Žemėlapis sąsaja, šie metodai veiks bet kokiam žemėlapio diegimui (HashMap , TreeMap , LinkedHashMap , Hashtable ir kt.)

1. Iteravimas per Map.entrySet() naudojant For-Each kilpą:
Map.entrySet() metodas grąžina rinkinio rodinį ( Nustatyti ) šiame žemėlapyje esančių atvaizdų. Taigi galime kartoti rakto ir vertės porą naudodami getKey () ir gautiValue() metodai Žemėlapis.Įėjimas . Šis metodas yra labiausiai paplitęs ir turėtų būti naudojamas, jei cikle reikia ir žemėlapio raktų, ir verčių. Žemiau yra java programa, skirta tai parodyti.



Java


algoritmo gylis pirmoji paieška





// 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());> >}> }>



>

>

Išvestis:

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

2. Raktų ar reikšmių kartojimas naudojant keySet() ir value() metodus
Map.keySet() metodas grąžina šiame žemėlapyje esančių raktų rinkinio rodinį ir Map.values() metodas grąžina šiame žemėlapyje esančių reikšmių rinkinį. Taigi, jei jums reikia tik raktų ar reikšmių iš žemėlapio, galite kartoti klavišų rinkinį arba reikšmes naudodami kiekvieną kilpą. Žemiau yra java programa, skirta tai parodyti.

Java


kaip java paversti eilutę į sveikąjį skaičių



// 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);> >}> }>

>

>

Išvestis:

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

3. Iteravimas naudojant iteratorius Žemėlapis.Įėjimas
Šis metodas yra šiek tiek panašus į pirmąjį. Pirmuoju metodu mes naudojame kiekvieną kilpą per Map.Entry, bet čia mes naudojame iteratoriai . Iteratorių naudojimas per Map.Entry turi savo pranašumą, t.y. galime pašalinti įrašus iš žemėlapio iteracijos metu paskambinę iterator.remove() metodas.

Java




// 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 eilutėje

>

>

Išvestis:

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

4. ForEach(action) metodo naudojimas:
„Java 8“ galite kartoti žemėlapį naudodami Žemėlapis.kiekvienam(veiksmas) metodas ir naudojimas lambda išraiška . Ši technika yra švari ir greita.

Java




// 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));> > >}> }>

>

>

Išvestis:

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

5. Iteravimas per raktus ir reikšmių paieška (neefektyvus)
Čia pirmiausia apjungiame klavišus (naudodami Map.keySet() metodas), tada ieškokite vertės (naudodami Map.get(raktas) metodas) kiekvienam klavišui. Šis metodas praktiškai nenaudojamas, nes jis yra gana lėtas ir neefektyvus, nes reikšmių gavimas pagal raktą gali užtrukti daug laiko.

hashset vs hashmap

Java




// 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);> >}> >}> }>

>

>

Išvestis:

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

Nuorodos: Stackoverflow