java - 获取 ArrayList 的值时出现意外的 IndexOutOfBoundException

标签 java arraylist indexoutofboundsexception

<分区>

public static void main(String[] args) {
    List<Integer> values = new ArrayList<>(30);
    for (int i = 0; i < values.size(); i++){
        values.add(i, 0);
    }
    int j = 0;
    int ghh = values.get(j);
}

上面是一个简单的代码片段,在最后一行给出了一个 OutOfBoundException。为什么抛出这个异常?我真的需要使用 for 循环来初始化列表所有元素的 0 值吗?

最佳答案

你的 for 循环什么都不做,因为 values.size()0 .这就是为什么 values.get(j)抛出异常(列表保持为空)。

将循环改为

for (int i = 0; i < 30; i++){
    values.add(i, 0);
}

当您创建 ArrayList具有此构造函数的实例 - new ArrayList<>(30) - 您指定的是初始容量,而不是初始大小。初始大小为 0 .

关于java - 获取 ArrayList 的值时出现意外的 IndexOutOfBoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37316425/

相关文章:

java - java 获取 ArrayIndexOutOfBoundsException

python - 编写不会因越界检查而中断的 if 语句的最佳方法是什么?

java - 手动解析 MTOM 消息

java - ArrayList 的初始化和修改

Java:在 ArrayList 中搜索对象中的元素

Java - 如何遍历 ArrayList 以添加元素?

java.lang.IndexOutOfBoundsException : Index: 1, 大小:1 在 Jidesoft DocumentPane 中

java - 找到绕圆圆周移动所需的位置变化#2

待分发的 Java TCP/IP 应用程序

java - 如果应用程序有多个登录(例如 Facebook、Google 和 Web 服务登录),如何在 Android 中管理 session