当前位置:  开发笔记 > 编程语言 > 正文

使用数学和流在Java 8中重新映射数组

如何解决《使用数学和流在Java8中重新映射数组》经验,为你挑选了1个好方法。

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



1> Alexis C...:

如果您已有阵列并且想要在适当的位置进行修改,则可以使用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();

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有