首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何才能在我的HashMap而不是整个HashMap中找到某些条目的最高值?

我如何才能在我的HashMap而不是整个HashMap中找到某些条目的最高值?
EN

Stack Overflow用户
提问于 2020-03-16 01:01:02
回答 2查看 47关注 0票数 1

我有一个( String,Double)类型的HashMap (称为QTable),我想创建一个方法,给定某个字符串键,它将返回HashMap中其他2-4个条目的最大双精度值。

条目看起来像<"Q04",例如0.0>。

在给定关键字"Q04“的情况下,我希望该方法返回具有关键字"Q40”、"Q43“和"Q45”的条目的最大双精度值,我假设它将类似于:

代码语言:javascript
复制
if (if x == QTable.get("Q04")) {
        return QTable.get.maxValue("Q40", "Q43", "Q45") }

不重要的背景信息:我正在尝试编写Bellman方程来填写Q表,这一步将用于在到达新状态时找到潜在移动的最大Q值。

EN

回答 2

Stack Overflow用户

发布于 2020-03-16 01:13:40

如下所示:

代码语言:javascript
复制
Double max = Stream.of("Q40", "Q43", "Q45")
             .map(hashMap::get)
             .mapToDouble(value -> value)
             .max()
             .getAsDouble();
票数 1
EN

Stack Overflow用户

发布于 2020-03-16 01:14:46

代码语言:javascript
复制
        final Map<String, Double> hashMap = new HashMap<>();
        hashMap.put("Q40", 1.0);
        hashMap.put("Q41", 3.0);
        hashMap.put("Q49", 2.0);
        hashMap.put("Q50", 20.0);

        Stream.of("Q40", "Q41", "Q49")
                .map(hashMap::get)
                .max(Comparator.comparing(Double::valueOf))
                .ifPresent(d -> System.out.println("The highest value is: " + d));

更新了一个更精简的版本。在这里,我创建了一个键流,我想从中提取最高值。我从hashMap变量中检索Double形式的值,然后使用max()操作符,返回一个Optional结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60695430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档