gpt4 book ai didi

Java 超出范围错误

转载 作者:搜寻专家 更新时间:2023-11-01 04:02:57 24 4
gpt4 key购买 nike

为什么下面会返回一个 IndexOutOfBoundsException? (索引 5,大小 0)

gridList = new ArrayList<Integer>(9);
gridList.add(5, 2);

我的印象是构造函数调用将我的数组列表初始化为该大小。

我对 java 很陌生,所以很抱歉。

最佳答案

调用该构造函数只是指定一个初始容量,但对 ArrayList 的大小没有影响(在添加任何内容之前,大小始终为零)。这在 docs 中有解释。并且还通过打印出 ArrayList 来证明:

ArrayList<Integer> gridList = new ArrayList<Integer>(9);
System.out.println(gridList);

Output: []

如果你想用 9 个整数(例如,九个零)初始化一个 ArrayList,试试这个'convenience implementation ':

ArrayList<Integer> gridList = new ArrayList<Integer>(Collections.nCopies(9, 0));
System.out.println(gridList);

Output: [0, 0, 0, 0, 0, 0, 0, 0, 0]

如您所见,这会在初始化期间用值填充 ArrayList,因此您现在可以调用 gridList.add(5, 2);没有 IndexOutOfBoundsException .

关于Java 超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19873629/

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