How to find the Entry with largest Key in a Java Map

Given a map in Java, the task is to find out the entry in this map with the highest key. Examples:
Input: Map = {ABC = 10, DEF = 30, XYZ = 20}
Output: XYZ = 20
Input: Map = {1 = 40, 2 = 30, 3 = 60}
Output: 3 = 60
Approach
for (Map.Entry entry : map.entrySet())
{
// Operations
}
- Store the first entry in a reference variable to compare to initially.
- If the current entry’s key is greater than the reference entry’s value, then store the current entry as the reference entry.
- Repeat this process for all the entries in the map.
- In the end, the reference variable has the required entry with the highest key in the map.
- Print this entry
Below is the implementation of the above approach:Â
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));    }} |
Output:
Map: {ABC=10, DEF=30, XYZ=20}
Entry with highest key: XYZ=20
Time complexity: O(NlogN) where N is size of map
Auxiliary Space: O(N)



