java获取IndexOutOfBoundsException:索引:1,大小:1尝试获取空索引时出错
我正在做一个项目,如果两个对象属于同一个类,那么该类型的新对象将插入该类型对象数组的随机空索引中。空索引不应重复
为了获得原始数组中有空值(没有对象)的实际索引,首先我添加了空索引,对它们进行了洗牌,并检查它们是否是对象的实例,如果是,则将该类型的新对象添加到原始数组的非重复随机空索引中。我做到了:
List<Integer> nullIndexes = new ArrayList<>();
for(int i = 0; i < original.length; i++)
{
if(original[i] == null)
nullIndexes.add(i);
}
Collections.shuffle(nullIndexes);
int index = nullIndexs.get(1);
if(original[0] instanceof Cat)
original[index] = new Cat();
if(original[0] instanceof Dog)
original[index] = new Dog();
但几乎每隔一次我运行该程序时,我都会遇到以下异常,并且无法找出原因:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at proj2sp16.Proj2App.main(Proj2App.java:437)
# 1 楼答案
索引从
0
开始,因此如果数组大小为1,则可以使用索引0
获取数组的第一个元素