¿Cómo iterar sobre un TreeMap en Java?

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() + "]");
    }
}
Producción: 

[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());
        }
    }
}
Producción

1->Geeks
2->For
3->Geeks

1->Geeks
2->For
3->Geeks

1->Geeks
2->For
3->Geeks

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *