Apache commons math有一个RealVector接口支持mapToSelf流体接口,其工作方式如下:
RealVector result = v.mapAddToSelf(3.4).mapToSelf(new Tan()).mapToSelf(new Power(2.3));
如果我有一个double[]
数组,我将如何使用Java 8流和Java Math做类似的事情?必须重用相同的数组.
TIA,Ole
如果您已有阵列并且想要在适当的位置进行修改,则可以使用Arrays.setAll
:
Arrays.setAll(arr, i -> Math.pow(Math.tan(arr[i] + 3.4), 2.3));
而万一你不希望修改原始数组,你可以创建一个DoubleStream
由它和映射每个元素:
double[] res = DoubleStream.of(arr).map(d -> Math.pow(Math.tan(d + 3.4), 2.3)).toArray();