Cómo encontrar la entrada con la clave más grande en un mapa de Java

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

  1. Iterar el mapa entrada por entrada
for (Map.Entry entry : map.entrySet()) 
{
    // Operations
}
  1. Almacene la primera entrada en una variable de referencia para comparar inicialmente.
  2. 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.
  3. Repita este proceso para todas las entradas del mapa.
  4. Al final, la variable de referencia tiene la entrada requerida con la clave más alta en el mapa.
  5. 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)

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 *