java.lang.IndexOutOfBoundsException-Index-1,-Size-0几种解决思路
目录
java.lang.IndexOutOfBoundsException: Index: 1, Size: 0(几种解决思路)
概要:java.lang.IndexOutOfBoundsException,Index和Size不同的值,有不同的含义,先理解这两项对解决问题更有帮助
一、问题描述
开发中,报错:java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
注意:“ Index: 1, Size: 0”这个是很重要的信息
二、解决
一般地,IndexOutOfBoundsException 索引越界异常,一般都是与数组、集合相关。
建议在排错时,着重在这两方面的代码上。
1、java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
这里的size是0,但是index已经为1了,那么就是跳过了index=0,导致了这个报错。
这个bug的是因为,在add元素时,直接指定了index=1,跳过了index=0。应该加判断。
2、java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
这里Index: 0, Size: 0 大概有三种可能:
(1)取了空值
list集合没有添加非空校验,在取第一条数据时,由于list集合为空,直接就报错了
解决:list集合添加非空校验,再取值
(2)使用List的get()方法传参超过List的大小。
(3)使用List.add(int index, E element)方法时,index参数值大于等于集合大小,导致报错。