Encuentra la posición de un elemento en un TreeMap de Java

Dado un elemento N y un TreeMap, la tarea es encontrar la posición de este elemento en el TreeMap dado en Java.

Ejemplos:

Entrada: TreeMap = {10=Geeks, 15=4, 20=Geeks, 25=Bienvenida, 30=Usted}, N = 20
Salida: 2

Entrada: TreeMap = {10=Geeks, 15=4, 20=Geeks, 25=Bienvenida, 30=Usted}, N = 5
Salida: -1

Acercarse:

  • No existe un método directo para averiguar la posición de la clave en un TreeMap.
  • Sin embargo, podemos usar el método TreeMap headMap() .
  • El método devuelve la porción del diagrama de árbol cuyas claves son estrictamente menores que las de key_point.
  • Por lo tanto, si la clave existe en TreeMap, entonces el tamaño() de su headMap es igual a la posición de la clave en TreeMap.

A continuación se muestra la implementación del enfoque anterior:

// Java code to find the position
// of an element in a Java TreeMap
  
import java.util.*;
  
public class Tree_Map_Demo {
  
    // Function to return the position of
    // the specified element in the given TreeMap
    public static <K, V> int findPosition(K N, TreeMap<K, V> tree_map)
    {
        int pos = -1;
  
        // Check if the given key
        // is present or not
        if (tree_map.containsKey(N)) {
  
            // If present, find the position
            // using the size of headMap()
  
            pos = tree_map.headMap(N).size();
        }
  
        return pos;
    }
  
    // Function to print the result
    public static <K, V> void printResult(K N, TreeMap<K, V> tree_map)
    {
  
        // Get the position
        int pos = findPosition(N, tree_map);
  
        // Print the result
        if (pos >= 0) {
  
            System.out.println(N + " found at "
                               + "position = " + pos);
        }
        else {
  
            System.out.println(N + " not found. "
                               + "Hence position = "
                               + pos);
        }
    }
  
    // Driver code
    public static void main(String[] args)
    {
  
        // Creating an empty TreeMap
        TreeMap<Integer, String> tree_map
            = new TreeMap<Integer, String>();
  
        // Mapping string values to int keys
        tree_map.put(10, "Geeks");
        tree_map.put(15, "4");
        tree_map.put(20, "Geeks");
        tree_map.put(25, "Welcomes");
        tree_map.put(30, "You");
  
        // Displaying the TreeMap
        System.out.println("TreeMap: " + tree_map);
  
        // Element of which position is to be found
        int N1 = 20, N2 = 5;
  
        // Get the position
        printResult(N1, tree_map);
        printResult(N2, tree_map);
    }
}
Producción:

TreeMap: {10=Geeks, 15=4, 20=Geeks, 25=Welcomes, 30=You}
20 found at position = 2
5 not found. Hence position = -1

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 *