繁体   English   中英

如何动态循环通过 arraylist 并添加每个第 n 个元素

[英]How to dynamically loop through an arraylist and add each nth element

我已经获得了一个数据点列表,这些数据点已添加到 arraylist 的 arraylist 中。 我现在面临的挑战是,在这种情况下,我必须通过 dim 添加每个第 n 个元素 4 -1 =3 个元素。 因此我需要添加元素 0 + 3、1 + 4 和 2 + 5。

这是arraylife的arraylist的视图

[[-0.2499999999998725, 0.09887005649714048, 0.12499999999997119, 0.2499999999998725, 0.34887005649701297, 0.3749999999998437, -0.09887005649714048, -0.34887005649701297, 0.02612994350283071, -0.12499999999997119, -0.3749999999998437, -0.02612994350283071],
[0.027777777777828083, -0.2504708097928492, -0.2638888888887171, -0.027777777777828083, -0.2782485875706773, -0.29166666666654517, 0.2504708097928492, 0.2782485875706773, -0.013418079095867896, 0.2638888888887171, 0.29166666666654517, 0.013418079095867896], 
[-0.40277777777757906, 0.15442561205268038, 0.1805555555555111, 0.40277777777757906, 0.5572033898302594, 0.5833333333330901, -0.15442561205268038, -0.5572033898302594, 0.02612994350283071, -0.1805555555555111, -0.5833333333330901, -0.02612994350283071]]
for(int i = 0; i < ai.size(); i++) {
    for(int k = 0; k < ai.get(i).size(); k++) {
        System.out.println(k +"   " + ai.get(i).get(k));
        }
    System.out.println("BREAK");
    }

在这里你可以看到我添加了每三个元素。 所以它的 0 + 3 + 6 + 9、1 + 4 + 7 + 10 和 3 + 5 + 8 + 11。期望 output 应该是单个数字期望 output

[[-0.22387005649, -0.2761299435, 0.5][arraylist two answer][ arraylist three answer]]

你需要三个总和:

    for(List<Double> subList: ai) {
      int k = 0;
      double[] sums = {0d, 0d, 0d};
      for(Double d: subList) {
        sums[k++ % 3] += d; // Redirect d into one of three sums
      }
      List<Double> sumsAsList = Arrays.stream(sums).boxed().collect(Collectors.toList());
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM