Dado un mapa en Java , la tarea es encontrar la entrada en este mapa con la clave más alta. Ejemplos:
Input: Map = {ABC = 10, DEF = 30, XYZ = 20} Output: XYZ = 20 Input: Map = {1 = 40, 2 = 30, 3 = 60} Output: 3 = 60
Acercarse
for (Map.Entry entry : map.entrySet()) { // Operations }
- Almacene la primera entrada en una variable de referencia para comparar inicialmente.
- Si la clave de la entrada actual es mayor que el valor de la entrada de referencia, almacene la entrada actual como la entrada de referencia.
- Repita este proceso para todas las entradas del mapa.
- Al final, la variable de referencia tiene la entrada requerida con la clave más alta en el mapa.
- Imprimir esta entrada
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program to find entry // with highest key in a map import java.util.*; public class GFG { // Find the entry with highest key public static <K extends Comparable<K>, V> Map.Entry<K, V> getMaxEntryInMapBasedOnKey(Map<K, V> map) { // To store the result Map.Entry<K, V> entryWithMaxKey = null; // Iterate in the map to find the required entry for (Map.Entry<K, V> currentEntry : map.entrySet()) { if ( // If this is the first entry, // set the result as this entryWithMaxKey == null // If this entry's key is more than the max key // Set this entry as the max || currentEntry.getKey() .compareTo(entryWithMaxKey.getKey()) > 0) { entryWithMaxKey = currentEntry; } } // Return the entry with highest key return entryWithMaxKey; } // Print the map public static void print(Map<String, Integer> map) { System.out.print("Map: "); // If map does not contain any value if (map.isEmpty()) { System.out.println("[]"); } else { System.out.println(map); } } // Driver code public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("ABC", 10); map.put("DEF", 30); map.put("XYZ", 20); print(map); System.out.println( "Entry with highest key: " + getMaxEntryInMapBasedOnKey(map)); } }
Producción:
Map: {ABC=10, DEF=30, XYZ=20} Entry with highest key: XYZ=20
Complejidad de tiempo : O (NlogN) donde N es el tamaño del mapa
Espacio Auxiliar: O(N)