如何编写简明的代码,将给定的int数组转换为一个数组,该数组由从第一个数组中获取的数字倒置组成:
[1, 2, 4, ...] -> [1.0, 0.5, 0.25, ...]
我发现流(例如Intstream,DoubleStream(很有用,我想使用它们,但是我无法处理类型(int-> double(。
我能够处理类似的问题,但是对于将ints转换为ints的函数:以下是函数 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);