gpt4 book ai didi

java - 收集到 treemap java 8

转载 作者:行者123 更新时间:2023-12-05 07:28:56 25 4
gpt4 key购买 nike

我想将结果收集到 TreeMap<Integer,Double>通过处理一个 TreeMap<Integer,ArrayList<String>> .

TreeMap<Integer,Double> result2 = units.entrySet().stream()
.filter(v -> v.getValue().size()>3)
.filter(v -> !v.getValue().get(1).isEmpty() && !v.getValue().get(2).isEmpty())
.mapToDouble(v -> mult( v.getValue().get(1), v.getValue().get(2)))
.collect();

基本上,我所做的是从流中的字符串 ArrayList 中获取值,过滤掉没有值的值,并通过在 lambda 表达式中使用 mult 函数来获取第二个和第三个元素的乘积。现在我不知道如何收集到一个 TreeMap,其中键是已处理的 TreeMap 的键,称为 units,值应该是我在 mapToDouble 中计算的乘积。

注意:单位是 TreeMap<Integer,ArrayList<String>>

最佳答案

您可以使用 toMap(keyMapper, valueMapper, mergeFunction, mapSupplier) 方法的重载版本将数据收集到 TreeMap 中,该方法允许您指定要创建的 map 。

TreeMap<Integer,Double> result2 = units.entrySet().stream()
.filter(v -> v.getValue().size()>3)
.filter(v -> !v.getValue().get(1).isEmpty() && !v.getValue().get(2).isEmpty())
.collect(Collectors.toMap(
entry -> entry.getKey(),
entry-> mult( entry.getValue().get(1), entry.getValue().get(2)),
(entry1, entry2) -> entry1, // called if duplicate keys are there, I have return entry1 by default by you can modify it according to you
TreeMap::new
));

你可以引用这个来查看 toMap 方法的重载。 https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html

关于java - 收集到 treemap java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53131710/

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