我有两个大小相等的数组:
int[] permutation
T[] source
我想像这样做
Arrays.stream(permutation).map(i -> source[i]).toArray();
但它不会起作用:不兼容的类型:lambda表达式中的错误返回类型
答案 0 :(得分:12)
> cor(ts2plus$mean, ts2preds)
[1] 0.9760174
的 Arrays.stream
会为您提供int[]
,因此IntStream
会map
(函数IntUnaryOperator
)。
您提供的函数属于int -> int
类型,其中T是一个对象(如果int -> T
由于取消装箱而成为T
,它将起作用,但不适用于无界泛型类型参数,假设它是一种通用类型)。
您要找的是使用Integer
代替mapToObj
(一个函数IntFunction
)并返回int -> T
:
Stream<T>