gpt4 book ai didi

Java 1.6 上的 Java Mapcompute() 示例

转载 作者:行者123 更新时间:2023-12-02 08:58:55 25 4
gpt4 key购买 nike

我必须致力于 Java 1.6。我在转换在 Java 1.8 上运行的以下代码时遇到困难。

Map<String, Double> maksimum = new HashMap<>();
List<Record> records;
for (Record record : records) {
record.getFeatures().forEach((key, value) -> {
maksimum.compute(key, (k1, max) -> max == null || value > max ? value : max);
});
}

我改造的内容如下。我想知道我哪里做错了。

for(Record rec : records) {
for (Map.Entry<String, Double> entry : rec.getFeatures().entrySet()) {
if (entry.getKey()==null || maksimum.containsKey(entry.getKey())) {
maksimum.replace(entry.getKey(), maksimum.get(entry.getValue()));
}
}
}

最佳答案

如果我正确理解了 Java 8 中的初始代码,您希望在 Map 中存储每个键的最大值。下面是在 Java 6 中执行此操作的代码:

Map<String, Double> maksimum = new HashMap<String, Double>();

for (Record record : records) {
for (Map.Entry<String, Double> recordEntry : record.getFeatures().entrySet()) {
String key = recordEntry.getKey();
Double value = recordEntry.getValue();

Double initialValue = maksimum.get(key);
if (initialValue == null) {
maksimum.put(key, value);
} else {
maksimum.put(key, Math.max(value, initialValue));
}
}
}

请注意,您在示例中使用的 replace 函数是在 Java 8 中引入的。文档:https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#replace-K-V-

关于Java 1.6 上的 Java Mapcompute() 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60315672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com