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: 2Entrada: 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