You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何比对数组与优先级HashMap获取最高优先级元素

实现方案

你的场景里优先级规则是HashMap中存储的数值越小,对应水果优先级越高,只需要一次遍历比对就能拿到结果,逻辑非常直接:

  • 初始化两个临时变量:一个记录当前遍历到的最高优先级对应的数值,初始值设为Integer.MAX_VALUE(保证比所有配置的优先级值都大),另一个记录当前找到的最高优先级水果,初始为空字符串即可。
  • 遍历水果数组的每一个元素,取出当前水果在优先级Map中对应的优先级数值。
  • 比对当前水果的优先级和临时记录的最高优先级:如果当前优先级数值更小,说明这个水果优先级更高,同步更新临时记录的最高优先级数值、最高优先级水果两个变量。
  • 整个数组遍历完成后,临时变量里存的水果就是优先级最高的最喜爱水果。

注意:如果水果数组可能存在没有配置优先级的水果,需要在取优先级前加priorityHash.containsKey(fruit)判断,跳过无配置的项,避免抛出空指针异常。

对应可直接运行的完整代码如下:

import java.util.HashMap;

public class FavFruitPicker {
    public static void main(String[] args) {
        HashMap<String, Integer> priorityHash = new HashMap<>();
        priorityHash.put("Apple",1);
        priorityHash.put("Orange",2);
        priorityHash.put("Mango",3);

        String[] fruits = new String[]{"Mango", "Orange", "Apple"};
        String favFruit = "";
        int highestPriority = Integer.MAX_VALUE;

        for (String currentFruit : fruits) {
            int currentPriority = priorityHash.get(currentFruit);
            if (currentPriority < highestPriority) {
                highestPriority = currentPriority;
                favFruit = currentFruit;
            }
        }

        // 最终favFruit值为Apple,和预期结果一致
        System.out.println(favFruit);
    }
}

内容的提问来源于stack exchange,提问作者user3383301

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 00:21:50