如何使用具有给定int数组的IntStream生成int int数组

时间:2019-05-01 13:45:55

标签: java arrays

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

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

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

我能够处理类似的问题,但对于将int转换为int的函数:下面是函数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()之类的“复杂”功能?

1 个答案:

答案 0 :(得分:4)

使用IntStream.mapToDouble

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