gpt4 book ai didi

java - 如何使用 Java Stream map 实现不同类型之间的映射?

转载 作者:搜寻专家 更新时间:2023-10-31 08:22:31 25 4
gpt4 key购买 nike

我有两个大小相等的数组:

  1. int[] 排列
  2. T[] 来源

我想这样做

Arrays.stream(permutation).map(i -> source[i]).toArray();

但它不会工作说:不兼容的类型:lambda 表达式中的错误返回类型

最佳答案

Arrays.streamint[]会给你一个 IntStream所以map将期待一个 IntUnaryOperator (函数 int -> int )。

您提供的函数类型为int -> T其中 T 是一个对象(如果 T 是一个 Integer 由于拆箱,它会起作用,但不适用于无限制的泛型类型参数,假设它是一个泛型类型)。

你要找的是使用mapToObj相反,它需要一个 IntFunction (函数 int -> T )并返回一个 Stream<T> :

//you might want to use the overloaded toArray() method also.
Arrays.stream(permutation).mapToObj(i -> source[i]).toArray();

关于java - 如何使用 Java Stream map 实现不同类型之间的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721099/

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