如何获取HashMap中的Max key-value
我尝试遍历,但我觉得效率很低。
我将为您提供两种方法:
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
public class MaxKeyValueInHashMap {
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<>();
map.put(1, 10);
map.put(2, 30);
map.put(3, 20);
Optional<Map.Entry<Integer, Integer>> maxEntry = map.entrySet()
.stream()
.max(Map.Entry.comparingByValue());
if (maxEntry.isPresent()) {
System.out.println("Max key-value pair: " + maxEntry.get());
} else {
System.out.println("Map is empty.");
}
}
}
import java.util.HashMap;
import java.util.Map;
public class MaxKeyValueInHashMapTraditional {
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<>();
map.put(1, 10);
map.put(2, 30);
map.put(3, 20);
Map.Entry<Integer, Integer> maxEntry = null;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) {
maxEntry = entry;
}
}
if (maxEntry != null) {
System.out.println("Max key-value pair: Key = " + maxEntry.getKey() + ", Value = " + maxEntry.getValue());
} else {
System.out.println("Map is empty.");
}
}
}