public static void main(String[] args) {
List list=new ArrayList<>();
list.add(10);
list.add(20);
list.add(30);
list.add(40);
for (Integer integer : list) {
System.out.println(integer);
}
//移除
list.remove(10);
System.out.println("—移除之后—");
for (Integer integer : list) {
System.out.println(integer);
}
}
结果:
10
20
30
40
Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 10, Size: 4
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.remove(ArrayList.java:492)
at com.qf.day15_3.Demo3.main(Demo3.java:18)
分析如下:
出现下标越界异常的原因:
list集合中移除会有两种方式remove(int index) remove(Object o)。当在括号中输入已经添加过的数据时(例如10时),jvm会将此数据当做下标,进行编译。所以会出现下标越界异常。