gpt4 book ai didi

java - 向列表分配值时遇到错误

转载 作者:行者123 更新时间:2023-12-02 08:52:49 25 4
gpt4 key购买 nike

我有一个包含 3 个元素的列表。它处于 while 循环中,我想在每次迭代中覆盖它的值。这是代码:

private List<Integer> loadList = new ArrayList<>(3);
.
.
.
while(counter < 10) {
loadList.add(0, taskNum);
loadList.add(1, taskNum);
loadList.add(2, taskNum);
.
.
.
counter++;
}

但是运行代码后,我意识到覆盖并没有发生,并且每次新元素都被添加到列表的末尾。例如:

At first : a = [1 2 3]

Then: a = [1 2 3 4 5 6] but I want it to be like a = [4 5 6]

所以我将代码更改为如下所示:

loadList = new ArrayList<>(3);
//initializing
loadList.add(0, 0);
loadList.add(1, 0);
loadList.add(2, 0);
while(counter < 10) {
loadList.set(0, taskNum);
loadList.set(1, taskNum);
loadList.set(2, taskNum);
.
.
.
counter++;
}

但现在我收到此错误:

2018-11-24 13:27:38.298 ERROR [n.f.core.Main] Exception in main
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:657) ~[na:1.8.0_151]
at java.util.ArrayList.set(ArrayList.java:448) ~[na:1.8.0_151]
at net.floodlightcontroller.mactracker.Mactracker.paramInit(Mactracker.java:137) ~[floodlight.jar:1.2-SNAPSHOT]
at net.floodlightcontroller.mactracker.Mactracker.init(Mactracker.java:205) ~[floodlight.jar:1.2-SNAPSHOT]
at net.floodlightcontroller.core.module.FloodlightModuleLoader.initModules(FloodlightModuleLoader.java:460) ~[floodlight.jar:1.2-SNAPSHOT]
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromList(FloodlightModuleLoader.java:295) ~[floodlight.jar:1.2-SNAPSHOT]
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromConfig(FloodlightModuleLoader.java:235) ~[floodlight.jar:1.2-SNAPSHOT]
at net.floodlightcontroller.core.Main.main(Main.java:61) ~[floodlight.jar:1.2-SNAPSHOT]

出了什么问题以及如何解决这个问题?

最佳答案

用这一行:

loadList = new ArrayList<>(3);

您定义列表的初始容量为3。
现在您可以添加任意数量的项目,而不仅仅是 3 个。
但你的列表仍然是空的。
您不能使用:

loadList.set(2, taskNum);

如果 3d 位置没有项目。
set(position, item) 仅当 position 处已有项目时才有效。
因此,请使用 add(item) 在列表末尾添加新项目
set(position, item) 来替换列表中 position 处已有的项目。
您还可以使用 add(position, item)position 处插入新项目,并将项目从该 position 向右移动。

关于java - 向列表分配值时遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53457125/

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