java - 如何使用具有给定整数数组的 IntStream 生成反转整数数组

标签 java arrays

如何编写简洁的代码,将给定的整数数组转换为由取自第一个数组的数字的倒数组成的数组:

[1, 2, 4, ...] -> [1.0, 0.5, 0.25, ...]

我发现流(如 IntStream、DoubleStream)很有用,我想使用它们,但我无法处理类型(Int -> Double)。

我能够处理类似的问题,但对于将整数转换为整数的函数:下面是函数 x->10x+1 而不是 x->1/x:

Stream.of(1, 2, 3).map(i -> 10*i+1).forEach(System.out::println);

是否有可能找到类似 x->1/x 或其他“复杂”函数的东西,例如 exp()ln()

最佳答案

使用IntStream.mapToDouble :

Stream.of(1, 2, 3).mapToDouble(i -> 1.0 / i /* or whatever */)
    .forEach(System.out::println);

关于java - 如何使用具有给定整数数组的 IntStream 生成反转整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55937263/

相关文章:

c - 为什么要声明一个数组类型的参数?

java - 如何避免使用递归数据类型进行手动类型检查

java - 为什么生成 long serialVersionUID 而不是简单的 1L?

java - HttpURLConnection catch block 重复

c - 从 main 传递数组并通过另一个函数修改它

arrays - 在 Typescript 中扩展数组会破坏构造函数

php - 合并多个数组然后按数组值计数排序

javascript - 如何调用/编辑在数组中找到的具有类名的所有 html 元素?

java - 充气城堡GNUPG解密

java - JScrollPane 在 swing 中滚动后不显示内容