gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:44:53 24 4
gpt4 key购买 nike

我在名为“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") 然后它将输出打印为 "1414131920”并且此代码打印正确。我使用了 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com