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)