java - 在数组列表中添加元素

标签 java

我在名为“l”的数组列表中插入了 25 个元素。接下来,我添加前 5 个元素并将总计存储到数组第一个位置 (a[0])。然后再次添加接下来的 5 个元素并将总计存储到数组第二个位置(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 个 for 循环来执行此操作,还有其他简单的方法来执行此操作吗?如果有,请告诉我我可以使用什么逻辑?

最佳答案

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

如何开始使用循环?

看看你的代码,好像有什么东西在一遍又一遍地重复?

看起来像这个部分:

for (int i = 0; i<5; i++) {
    total = total + l.get(i);
}
System.out.println("1 " + total);
a[0] = total;
total = 0;

重复了5次!您应该始终致力于编写最少代码量

您可以将您的解决方案概括为以下内容:

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;
}

但这仍然非常有限,我想处理大小 > 25 的数组列表!

您可以使用另一个数组列表来代替使用数组来获取结果

像这样:

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));
}

关于java - 在数组列表中添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56740583/

相关文章:

java - 根据其类型禁用 KeyTyped 事件

java - Rally 向变更集添加变更列表。使用 Java Toolkit for Rally REST API

java - 如何持久化 Http Session

java - 在同一个函数的 synchronized() block 中初始化后,能否在 synchronized() 之外安全地使用 Java 集合?

java - Cassandra:如何将PreparedStatement绑定(bind)到 map 数据

java - 抢强标签Jsoup后的号码

java - 如何在 PHP 中创建 Java 类对象并运行其函数?

java - 在使用 Cucumber 和 JUnit 时,如何截取屏幕截图并将其附加到 Allure 报告中?

java - 如何判断我是在 64 位 JVM 还是 32 位 JVM 中运行(从程序中)?

java - 没有 jcl-over-slf4j 的 Spring + Logback(slf4j) 日志记录