Dado un TreeMap , la tarea es iterar este TreeMap en Java. TreeMap en Java se utiliza para implementar la interfaz Map y NavigableMap junto con la clase abstracta . No podemos iterar un TreeMap directamente usando iteradores, porque TreeMap no es una colección. Así que tendremos que usar el método TreeMap.entrySet() . Este método devuelve una vista de colección (Set<Map.Entry>) de las asignaciones contenidas en este mapa de árbol. Entonces podemos iterar sobre el par clave-valor usando los métodos getKey() y getValue() de Map.Entry. Este método es el más común y debe usarse si necesita claves de mapa y valores en el bucle.
Ejemplo 1:
Java
// Java program to iterate over a TreeMap import java.util.Map; import java.util.TreeMap; class IterationDemo { public static void main(String[] arg) { Map<String, String> gfg = new TreeMap<String, String>(); // enter name/url pair gfg.put("GFG", "geeksforgeeks.org"); gfg.put("Practice", "practice.geeksforgeeks.org"); gfg.put("Code", "code.geeksforgeeks.org"); gfg.put("Quiz", "quiz.geeksforgeeks.org"); // using for-each loop for // iteration over TreeMap.entrySet() for (Map.Entry<String, String> entry : gfg.entrySet()) System.out.println( "[" + entry.getKey() + ", " + entry.getValue() + "]"); } }
[Code, code.geeksforgeeks.org] [GFG, geeksforgeeks.org] [Practice, practice.geeksforgeeks.org] [Quiz, quiz.geeksforgeeks.org]
Ahora veamos el recorrido sobre las entradas en el objeto TreeMap. Para implementar, estamos considerando una asociatividad de elementos de mapa muy simple donde tenemos tres elementos que dicen ser «Geeks», «for», «Geeks» y ser el valor clave ‘1’, ‘2’ y ‘3’ de tipo entero. Entonces, de esto solo podemos obtener que necesitamos hacer un objeto de la clase TreeMap.
Ejemplo 2:
Java
// Java Program to Iterate Over Entries in a TreeMap import java.util.*; // Importing required // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating a TreeMap class object // Objects are of key-value pairs (integer and // string type) TreeMap<Integer, String> tm = new TreeMap<Integer, String>(); // Customly adding elements tm.put(1, "Geeks"); tm.put(2, "For"); tm.put(3, "Geeks"); // Get all entries using the entrySet() method Set<Map.Entry<Integer, String> > entries = tm.entrySet(); // Way 1 // Using for loops for (Map.Entry<Integer, String> entry : entries) { System.out.println(entry.getKey() + "->" + entry.getValue()); } // New line to differentiate differences in output // between for loop and for each loop System.out.println(); // Way 2 - getting code shorter and simpler // For each loops entries.forEach(entry -> { System.out.println(entry.getKey() + "->" + entry.getValue()); }); // New line to differentiate differences in output // between for each loop and iterator traversal System.out.println(); // Way 3 - New way to // Getting an iterator Iterator<Map.Entry<Integer, String> > iterator = entries.iterator(); // Additional step here // To Initialize object holding for // key-value pairs to null Map.Entry<Integer, String> entry = null; // Holds true till there is no element remaining in // the object using hasNExt() method while (iterator.hasNext()) { // Moving onto next pairs using next() method entry = iterator.next(); // Printing the key-value pairs // using getKet() and getValue() methods System.out.println(entry.getKey() + "->" + entry.getValue()); } } }
1->Geeks 2->For 3->Geeks 1->Geeks 2->For 3->Geeks 1->Geeks 2->For 3->Geeks