gpt4 book ai didi

java - 将 IntStream 转换为 Map

转载 作者:行者123 更新时间:2023-12-03 21:28:57 27 4
gpt4 key购买 nike

我有一个 IntStream并希望对该流的每个元素进行一些计算并将它们返回为 Map其中键是 int 值,值是该计算的结果。我写了以下一段代码:

IntStream.range(0,10)
.collect(
Collectors.toMap(Function.identity(), i -> computeSmth(i)));
哪里 computeSmth(Integer a) .我遇到下一个编译器错误
method collect in interface java.util.stream.IntStream cannot be applied to given types;
required: java.util.function.Supplier<R>,java.util.function.ObjIntConsumer<R>,java.util.function.BiConsumer<R,R>
found: java.util.stream.Collector<java.lang.Object,capture#1 of ?,java.util.Map<java.lang.Object,java.lang.String>>
reason: cannot infer type-variable(s) R
(actual and formal argument lists differ in length)
我做错了什么?

最佳答案

这是我的代码,它对你有用。

函数引用版本

public class AppLauncher {

public static void main(String a[]){
Map<Integer,Integer> map = IntStream.range(1,10).boxed().collect(Collectors.toMap(Function.identity(),AppLauncher::computeSmth));
System.out.println(map);
}
public static Integer computeSmth(Integer i){
return i*i;
}
}

Lambda 表达式版本
public class AppLauncher {

public static void main(String a[]){
Map<Integer,Integer> map = IntStream.range(1,10).boxed().collect(Collectors.toMap(Function.identity(),i->i*i));
System.out.println(map);
}
}

关于java - 将 IntStream 转换为 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318181/

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