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)); } } |
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)