gpt4 book ai didi

java - 为什么此代码会产生 IndexOutOfBoundsException?

转载 作者:行者123 更新时间:2023-11-30 06:10:07 26 4
gpt4 key购买 nike

谁能解释一下这个问题...

为什么:

String letters[] = { "A", "B", "C" };
ArrayList<String> list = new ArrayList<String>(3);

for(int i=2 ; i >= 0 ; i--)
list.set(i,letters[i]);


for(int i=0 ; i < list.size() ; i++)
System.out.print(list.get(i));

产生一个:IndexOutOfBoundsException

最佳答案

因为 new ArrayList<String>(3)创建一个 ArrayList 初始容量为 3,不是包含 3 个元素的列表:

ArrayList<String> list = new ArrayList<String>(3);
list.size();//output 0

所以当你调用list.set(i,letters[i])您第一次尝试访问不存在的元素 2。

另一方面,此代码将按您希望的方式工作:

ArrayList<String> list = new ArrayList<String>(Collections.nCopies(3, null));

关于java - 为什么此代码会产生 IndexOutOfBoundsException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393117/

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