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