我正在处理一个项目并收到此错误“java.lang.ArrayIndexOutOfBoundsException:2> = 0” 我有与此相关的问题,我知道这是ArrayIndexOutOfBoundsException:P但是 看一下这个示例,
import java.awt.List;
import java.util.ArrayList;
public class Oube {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Hello");
list.add("World");
list.add("World");
System.out.println(list.size());
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(3));
System.out.println(list.get(4));
System.out.println(list.get(5));
System.out.println(list.get(6));
}
}
我们收到以下错误, 线程“main”中的异常java.lang.IndexOutOfBoundsException:Index:3,Size:3
这里我们看不到像x&lt; = y
这样的东西在我的代码中,我在ArrayIndexOutOfBoundsException之后发生了2&gt; = 0错误 所以我的问题是,我们什么时候得到像这样的2&gt; = 0错误?
答案 0 :(得分:3)
您正在创建一个大小为动态的Arraylist对象
ArrayList<String> list = new ArrayList<String>();
虽然您只添加了3个元素
list.add("Hello");
list.add("World");
list.add("World");
这将创建一个大小为3的ArrayList,其索引从0到2.虽然从索引大于2调用
System.out.println(list.get(3));
System.out.println(list.get(4));
System.out.println(list.get(5));
System.out.println(list.get(6));
您将收到ArrayIndexOutOfBoundsException
,因为您正在调用ArrayList中不存在索引的元素,或者索引超出了ArrayList的范围。
答案 1 :(得分:2)
您在列表中添加了三个项目,因此大小将 3 ,但索引会像0,1,2
那样现在您想要获取list.get(3)
等,然后它会抛出异常,size 3 ,最后一个元素位于 2 。如果您将看到您的代码
System.out.println(list.get(3));
System.out.println(list.get(4));
System.out.println(list.get(5));
System.out.println(list.get(6));
您将访问列表中不存在的那些元素,因此当您尝试访问不存在的数组项时会抛出此异常:
答案 2 :(得分:1)
你没有以
的形式看到erorrjava.lang.IndexOutOfBoundsException:Index:3,Size:3
这里我们看不到像x&lt; = y
这样的东西
因为Arraylist是一个动态集合,它根据需要增长。处理固定大小的数组时会得到提到的异常。
所有这些语句都会抛出异常,因为arraylist没有所需索引的元素:
System.out.println(list.get(3));
System.out.println(list.get(4));
System.out.println(list.get(5));
System.out.println(list.get(6));
答案 3 :(得分:0)
在运行时检查所有数组访问;尝试使用小于零或大于或等于数组长度的索引会导致抛出ArrayIndexOutOfBoundsException。
您确保索引在[0...yourArray.length-1].
所以你可以访问0,1,2