Immer eine IndexOutOfBoundsException: index: 1, size: 1 Fehler beim Versuch, die null-Indizes

Arbeite an einem Projekt, wo, wenn zwei Objekte der gleichen Klasse, wird ein neues Objekt von diesem Typ ist eingefügt in eine random null-index ein Objekt-array von diesem Typ. Die null-Indizes sollten nicht wiederholt werden.

Zu Holen Sie sich die aktuellen Indizes auf, wo die original-array auch null-Werte(keine Objekte), zuerst habe ich die null-Indizes, schlurfte Sie und überprüft, ob Sie ein instanceof-ein Objekt, und wenn ja, wird ein neues Objekt von diesem Typ wird Hinzugefügt, um die nicht zu wiederholen random null-index des original-array. Ich habe diese:

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

Aber fast jedesmal, wenn ich das Programm starte, erhalte ich die unten Ausnahme und kann nicht herausfinden, warum:

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)
  • wie hast du Sie initialisiert die variable 'j'? (in der Anweisung verwendet nullIndexes.add(j);)
InformationsquelleAutor Michael Cera | 2016-02-24
Schreibe einen Kommentar