我有一个( String,Double)类型的HashMap (称为QTable),我想创建一个方法,给定某个字符串键,它将返回HashMap中其他2-4个条目的最大双精度值。
条目看起来像<"Q04",例如0.0>。
在给定关键字"Q04“的情况下,我希望该方法返回具有关键字"Q40”、"Q43“和"Q45”的条目的最大双精度值,我假设它将类似于:
if (if x == QTable.get("Q04")) {
return QTable.get.maxValue("Q40", "Q43", "Q45") }不重要的背景信息:我正在尝试编写Bellman方程来填写Q表,这一步将用于在到达新状态时找到潜在移动的最大Q值。
发布于 2020-03-16 01:13:40
如下所示:
Double max = Stream.of("Q40", "Q43", "Q45")
.map(hashMap::get)
.mapToDouble(value -> value)
.max()
.getAsDouble();发布于 2020-03-16 01:14:46
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结果。
https://stackoverflow.com/questions/60695430
复制相似问题