gpt4 book ai didi

java - 我的 ArrayList 究竟有什么问题?

转载 作者:行者123 更新时间:2023-11-29 05:08:53 24 4
gpt4 key购买 nike

我的程序可以编译,但是当我运行它时,它会给我一个 IndexOutOfBoundsException。我想知道它有什么问题,因为我看不到它。我的程序应该接受用户的输入并将其添加到 ArrayList。如果我的错误对你来说很明显,我很抱歉,但我在使用 ArrayLists 方面相对较新。谢谢!

ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
int counter = 0;
int i = 0;
Scanner in = new Scanner(System.in);
int input = in.nextInt();

while(i < 5)
{
input = in.nextInt();
if(input != 0){
arr.get(i).set(counter++, input);
}
else{
arr.get(i).set(counter++, input);
i++;
counter = 0;
}
}

System.out.println(arr);

最佳答案

当您创建 ArrayListArrayList 时,最初,arr 中不包含任何 ArrayList .因此,对 get 的任何调用都将失败并返回 IndexOutOfBoundsException

首先,将初始的内部ArrayList添加到arr

然后,在 while 循环中,获取 当前内部 ArrayList,但只需调用 add 将数字附加到列表的末尾。否则,您将在内部 ArrayList 上得到一个 IndexOutOfBoundsException。同样,您创建的 ArrayList 最初是空的。

当用户输入 0 时,然后在递增 i添加 另一个 ArrayList(除非 i 已经是最后一个期望值),为用户将数字添加到下一个列表做准备。

关于java - 我的 ArrayList 究竟有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29423136/

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