有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    索引从0开始,因此如果数组大小为1,则可以使用索引0获取数组的第一个元素