java - 快速获取java中两个浮点列表之和的max和maxIndex

标签 java android java-stream lightweight-stream-api

我正在尝试以比我在下面管理的方法更快的方式计算两个列表的最大和对,使用 "lightweight streams" :

 List<Float> pairsSum = new ArrayList<>();
 // Get the list with all the sums
 Stream.range(0, list1.size())
          .forEach(i -> pairsSum.add(list1.get(i) + list2.get(i)));
 // Get the index of the max pair
 maxIndex = pairsSum.indexOf(Stream.of(pairsSum).max(Double::compare).orElse(0f));

最佳答案

List<Float> pairsSum = new ArrayList<>(repLeftForces.size());
// Get the list with all the sums
int maxIndex = -1;
float max = 0F;
for (int i =0; i < repLeftForces.size(); ++i) {
    float sum = list1.get(i) + list2.get(i);
    //pairsSum.add(sub);
    if (maxIndex == -1 || sum > max) {
        maxIndex = i;
        max = sum;
    }
 }

实际上不需要 pairsSum 列表。但是在使用的时候,实际尺寸是事先知道的。

因为人们也想为最大值做一个reduce,并额外接收 maxIndex,最好是经典循环而不是使用 Stream。

关于java - 快速获取java中两个浮点列表之和的max和maxIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55496811/

相关文章:

java - 复合编辑的并发性

java - hibernate 恩弗斯 : Get REVEND_TSTMP from revision entity

java - 实现精确的时间相关顺序执行的好方法是什么?

java - 如何使用 Java Streams API 在两个相同维度的列表之间进行元素明智的乘法

java - 如何使用Java Streams仅收集长度最大的元素?

java - 在 Java 中实现 Iterable

java - Android 应用 Toast 混淆

android - Sprite 图像动画

android - Recyclerview 保持点击的项目突出显示 - Android

java - 流中收集器中的比较器导致类型推断问题?