Arraylist und NoSuchElementException

Klemic

Mitglied
Hallo ich habe eine Arraylist welche Integer Werte speichert.
Jetzt hab ich ein kleines Problem wenn ich die größte Zahl aus der Liste hole. Ruf ich meine Funktion das 2. mal auf bekomm ich eine NoSuchElementException. Weis jemand warum ? Also werte sind genug in der Liste...
Ich kann die wErte in der Liste auch ohne Probleme ausgeben.

Java:
public int biggestNumber() {
 ArrayList<Integer> numbers = new ArrayList<Integer>();
      Iterator<Integer> it = numbers.iterator();
      int i=0;
      while(it.hasNext()) {
          if(i<it.next()) {
              i=it.next();
          }
      }
      return i;
    }
 
Nö, sind es nicht. Nicht ein einziges.
Numbers wird in Zeile 2 initialisiert. Da ist das ArrayList leer.
In Zeile 3 wird ein Iterator abgefragt und in Zeile 5 gefragt, ob noch ein Element in der Liste ist.
Ist es aber nicht, daher wird sofort I zurückgegeben, welches in Zeile 4 zu 0 initialisiert wurde.
Nochwas: Zeile 6 und 7. .next() holt wirklich das nächste Element aus der Liste. Hier wird es zweimal
aufgerufen, also das nächste (Zeile 6) und das übernächste (Zeile 7) ausgelesen.
Ist das gewollt?

Hatti
 
Der Code passt doch nicht zum Text - im geposteten Code ist die Liste leer (und zwar sowohl beim ersten als auch beim zweiten als auch bei jedem anderen Aufruf)
 
wenn aber mal eine ungerade Anzahl Element drin sein sollte, dann wird diese Exception kommen,
durch Zeile 6 und 7 werden immer je zwei Elemente auf einmal ausgelesen
 

Zurück
Oben