簡體   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