如何获取HashMap中的Max key-value<key, vaule>?

问题描述 投票:0回答:1

如何获取HashMap中的Max key-value?我尝试在hashmap(例如HashMap)中搜索,哪种方式最有效?传输到流,遍历或其他。非常感谢。

我尝试遍历,但我觉得效率很低。

java hashmap
1个回答
0
投票

我将为您提供两种方法:

  1. 使用Java流:

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

  1. 使用传统循环

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

© www.soinside.com 2019 - 2024. All rights reserved.