Obtenir un IndexOutOfBoundsException: index: 1, taille: 1 erreur lorsque vous essayez d'obtenir null index

Je travaille sur un projet où, si deux objets sont de la même classe, un nouvel objet de ce type est insérée dans un échantillon aléatoire null indice d'un tableau d'objets de ce type. L'null index ne doit pas être répété.

De se procurer les indices d'où le tableau d'origine a des valeurs null(pas d'objets), d'abord j'ai ajouté de la valeur null index, mélangés entre eux et vérifier si elles sont un instanceof un objet et, dans l'affirmative, un nouvel objet de ce type est ajouté à la non répétition aléatoire null index du tableau original. Je l'ai fait:

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();

Mais presque à chaque fois que je lance le programme, j'obtiens le ci-dessous exception et ne peux pas comprendre pourquoi:

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)
  • comment avez-vous initialisé la variable "j"? (utilisé dans la déclaration nullIndexes.ajouter(j);)
InformationsquelleAutor Michael Cera | 2016-02-24