Java 在arraylist中添加元素

Java 在arraylist中添加元素,java,Java,我在名为l的arraylist中插入了25个元素。接下来,我将添加前五个元素,并将总数存储到数组的第一个位置a[0]。然后再次添加后五个元素,并将总数存储到数组的第二个位置a[1]。同样,它会继续。然后,我至少打印数组a。我为此尝试了for循环 for (int i = 0; i<5; i++) { total = total + l.get(i); } System.out.println("1 " + total);

我在名为l的arraylist中插入了25个元素。接下来,我将添加前五个元素,并将总数存储到数组的第一个位置a[0]。然后再次添加后五个元素,并将总数存储到数组的第二个位置a[1]。同样,它会继续。然后,我至少打印数组a。我为此尝试了for循环

for (int i = 0; i<5; i++) {
            total = total + l.get(i);
        }
        System.out.println("1 " + total);
        a[0] = total;
        total = 0;
        for (int i = 5; i<10; i++) {
            total = total + l.get(i);
        }
        System.out.println("2 " + total);
        a[1] = total;
        total = 0;
        for (int i = 10; i<15; i++) {
            total = total + l.get(i);
        }
        System.out.println("3 " + total);
        a[2] = total;
        total = 0;
        for (int i = 15; i<20; i++) {
            total = total + l.get(i);
        }
        System.out.println("4 " + total);
        a[3] = total;
        total = 0;
        for (int i = 20; i<25; i++) {
            total = total + l.get(i);
        }
        System.out.println("5 " + total);
        a[4] = total;
    }
    for(int i=0;i<a.length;i++)
    {
        System.out.println(a[i]);
    }
例如:如果arraylist包含元素1,1,0,8,4,6,6,1,0,1,4,1,1,1,6,6,4,1,0,8,8,3,8,1,0,则输出为14 14 13 19
20,此代码打印正确。我使用5作为循环来执行此操作,是否有其他简单的方法来执行此操作?如果有,请告诉我可以使用什么逻辑?

您的代码存在一个主要问题,您最多只能处理大小为25的数组。您应该使用循环来获得所需的行为。使用循环还有一个好处,就是不需要反复重用代码

如何开始使用循环? 看看你的代码,什么似乎被重复了一遍又一遍

这似乎是一节:

for (int i = 0; i<5; i++) {
    total = total + l.get(i);
}
System.out.println("1 " + total);
a[0] = total;
total = 0;
仅供参考:l小写字母l对于变量来说是一个非常糟糕的名称,因为它很容易与数字1混淆,这取决于所使用的字体。不要使用名为l的变量。
for (int chunk = 0; chunk < 5; chunk ++) {
    for (int i = 0; i < 5; i++) {
        total = total + l.get(i + chunk * 5);
    }
    System.out.println(chunk + " " + total);
    a[chunk] = total;
    total = 0;
}
List<Integer> results = new ArrayList<Integer>();

for (int i = 0; i < l.size(); i++) {
    int chunk = i / 5;

    if (chunk >= results.size()) 
        results.add(l.get(i));
    else
        results.set(chunk, l.get(i) + results.get(chunk));
}
for (int i = 0; i < results.size(); i++) {
    System.out.println(i + " " + results.get(i));
}