Hallo Welt.
Ist ja wirklich ein riesiges Forum.
Bin gerade neu und habe schon eine Frage.
Übrigens, ich lerne gerade Java
mit dem Buch "Objects first with java - a practical introduction
using blueJ" -> Wirklich empfehlenswert!
Nun bin ich bei einer Aufgabe im Buch angelangt, wo ich einfach nicht
mehr weiterkomme.
Das Programm um das es geht ist eine einfache Auktion. In einer
Arraylist "lots" kann ich die Objekte der klasse "Lot" sammeln.
Die ANONYMEN Objekte in "lots" haben jeweils das Field (Number) und (Beschreibung).
Beim Erstellen des ersten Objektes "Lot" bekommt das Field (Number) den
Wert (1). Beim Erstellen des zweiten Objektes den Wert (2)
zB.
ArrayList lots
index----------Klasse Lot
0---------------(1) Hose
1---------------(2) T-Shirt
Angenommen, die Auktion Hose würde gelöscht werden ->
0---------------(2) T-Shirt <- der Wert 2 bleibt.
--
Nun zum Quelltext
Zum Löschen einer Auktion habe ich die Methode removeLot() geschrieben:-
Ich hoffe der Quelltext ist verständlich.
Der Code wird ohne Syntax-Errors kompiliert. Soweit alles ok.
Jetzt möchte ich die Auktion (2) Hose mit dieser Methode löschen und gebe dazu als parameter den Wert 2 an.
Bis zur While Schleife ist alles in Ordnung. Diese wird auch einmal durchlaufen, beim zweiten mal wird das Objekt
(selectedItems) die gesuchte Nummer (2) haben.
Aber genau in der Zeile bleibt das Programm stehen und der Debugger zeigt mir den Fehler
NoSuchElementException:
null (in java.util.AbstractList$Itr)
an. Kann mir jemand da weiterhelfen?
Ist ja wirklich ein riesiges Forum.
Bin gerade neu und habe schon eine Frage.
Übrigens, ich lerne gerade Java
mit dem Buch "Objects first with java - a practical introduction
using blueJ" -> Wirklich empfehlenswert!
Nun bin ich bei einer Aufgabe im Buch angelangt, wo ich einfach nicht
mehr weiterkomme.
Das Programm um das es geht ist eine einfache Auktion. In einer
Arraylist "lots" kann ich die Objekte der klasse "Lot" sammeln.
Die ANONYMEN Objekte in "lots" haben jeweils das Field (Number) und (Beschreibung).
Beim Erstellen des ersten Objektes "Lot" bekommt das Field (Number) den
Wert (1). Beim Erstellen des zweiten Objektes den Wert (2)
zB.
ArrayList lots
index----------Klasse Lot
0---------------(1) Hose
1---------------(2) T-Shirt
Angenommen, die Auktion Hose würde gelöscht werden ->
0---------------(2) T-Shirt <- der Wert 2 bleibt.
--
Nun zum Quelltext
Zum Löschen einer Auktion habe ich die Methode removeLot() geschrieben:-
Code:
public void removeLot(int number) {
if ((number >= 1) && (number < nextLotNumber)) {
Iterator it = lots.iterator();
Lot selectedLot = (Lot) it.next();
int ziffer = 0;
while ((selectedLot.getNumber() != number) || (it.hasNext())) {
selectedLot = (Lot) it.next();
ziffer++;
}
if (selectedLot.getNumber() == number) {
lots.remove(ziffer);
}
else {
System.out.println("Diese Auktion gibt es nicht!");
}
}
else {
System.out.println("Diese Nummer ist ungültig!!");
}
Der Code wird ohne Syntax-Errors kompiliert. Soweit alles ok.
Jetzt möchte ich die Auktion (2) Hose mit dieser Methode löschen und gebe dazu als parameter den Wert 2 an.
Bis zur While Schleife ist alles in Ordnung. Diese wird auch einmal durchlaufen, beim zweiten mal wird das Objekt
(selectedItems) die gesuchte Nummer (2) haben.
Aber genau in der Zeile bleibt das Programm stehen und der Debugger zeigt mir den Fehler
NoSuchElementException:
null (in java.util.AbstractList$Itr)
an. Kann mir jemand da weiterhelfen?