logo

Cómo iterar cualquier mapa en Java

Generalmente hay cinco formas de iterar sobre un Mapa en Java. En este artículo, los discutiremos todos y también veremos sus ventajas y desventajas.
En primer lugar, nosotros no puedo iterar un mapa directamente usando iteradores , porque el mapa no lo es Recopilación. Además, antes de continuar, debes saber un poco sobre Mapa.Entrada interfaz.
Dado que todos los mapas en Java implementan Mapa interfaz, las siguientes técnicas funcionarán para cualquier implementación de mapa (HashMap, TreeMap, LinkedHashMap, Hashtable, etc.)

1. Iterando sobre Map.entrySet() usando el bucle For-Each:
Mapa.entrySet() El método devuelve una vista de colección ( Colocar ) de las asignaciones contenidas en este mapa. Entonces podemos iterar sobre el par clave-valor usando obtener la clave() y obtenerValor() métodos de Mapa.Entrada . Este método es el más común y debe usarse si necesita claves y valores de mapa en el bucle. A continuación se muestra el programa java para demostrarlo.

Java




nombres de ciudades estados unidos



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

>

>

Producción:

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

2. Iterar sobre claves o valores usando los métodos keySet() y value()
Mapa.keySet() El método devuelve una vista de conjunto de las claves contenidas en este mapa y Mapa.valores() El método devuelve una vista de colección de los valores contenidos en este mapa. Entonces, si solo necesita claves o valores del mapa, puede iterar sobre keySet o valores usando bucles for-each. A continuación se muestra el programa java para demostrarlo.

Java




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

>

>

Producción:

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

3. Iterar usando iteradores sobre Mapa.Entrada
Este método es algo similar al primero. En el primer método usamos el bucle for-each sobre Map.Entry, pero aquí usamos iteradores . El uso de iteradores sobre Map.Entry tiene su propia ventaja, es decir. podemos eliminar entradas del mapa durante la iteración llamando iterador.eliminar() método.

Java

cómo saber el tamaño de la pantalla




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

>

>

Producción:

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

4. Usando el método forEach(acción):
En Java 8, puedes iterar un mapa usando Mapa.para cada (acción) método y uso expresión lambda . Esta técnica es limpia y rápida.

Java




cadena.formato 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));> > >}> }>

>

responder en java

>

Producción :

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

5. Iterar sobre claves y buscar valores (ineficiente)
Aquí primero recorremos las claves (usando Mapa.keySet() método) y luego buscar valor (usando mapa.get(clave) método) para cada clave. Este método no se utiliza en la práctica porque es bastante lento e ineficiente, ya que obtener valores mediante una clave puede llevar mucho tiempo.

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

>

>

Producción:

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

Referencias: Desbordamiento de pila