Übung 11 online!!!!
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 11 online!!!!
Du versuchst wohl mit einer foreach Schleife eine Collection zu durchlaufen.
Wenn du allerdings die dem Iterator zugrundeliegende Collection veränderst,
dann wird der Iterator ungültig.
Versuche es mal mit einer normalen for Schleife mit Integer-Iterator.
Wenn du allerdings die dem Iterator zugrundeliegende Collection veränderst,
dann wird der Iterator ungültig.
Versuche es mal mit einer normalen for Schleife mit Integer-Iterator.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Re: Übung 11 online!!!!
So sieht meine for-Schleife aus:
Wie solls denn aussehn?
Code: Alles auswählen
for (Airport item : airportMap){
...
}
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 11 online!!!!
Code: Alles auswählen
for (int i=0; i<airportMap.length(); i++) {
...
}
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Re: Übung 11 online!!!!
Weiß nicht obs daran liegt, aber leg doch einfach eine neue Airport-Liste an und wenn das Objekt nicht der gesuchte Airport ist wird es in die Liste geschrieben, ansonsten nicht. Ich hab ne HashMap genommen, damit habe ich eine 2-Zeilen Methode 

-
- DON'T PANIC
- Beiträge: 42
- Registriert: 10. Okt 2007 18:28
Re: Übung 11 online!!!!
ich glaub es geht auch so...du musst glaube nur sicherstellen, dass du das objekt außerhalb der for schleife löschst und nicht innerhalb...ChRiZz88 hat geschrieben:So sieht meine for-Schleife aus:Wie solls denn aussehn?Code: Alles auswählen
for (Airport item : airportMap){ ... }
Re: Übung 11 online!!!!
Wenn ich das Objekt außerhalb der for-Schleife lösche, brauche ich ja die Schleife zu nix...
Denn ich muss ja in der Schleife zumindest eine externe Funktion aufrufen, die sofort löscht, denn mit dem nächsten Durchlauf ist der schöne Wert, den ich löschen mag, auch schon wieder weg...
Achja und .length geht nicht, weils ne LinkedList ist :/
Okay andre Frage: Wie kann ich mir ne LinkedList ausgeben lassen? Mit kommt raus:
Ist das ein ausgabetechnischer Fehler oder liegt das an einem Fehler in meiner addAirport?
Denn ich muss ja in der Schleife zumindest eine externe Funktion aufrufen, die sofort löscht, denn mit dem nächsten Durchlauf ist der schöne Wert, den ich löschen mag, auch schon wieder weg...
Achja und .length geht nicht, weils ne LinkedList ist :/
Okay andre Frage: Wie kann ich mir ne LinkedList ausgeben lassen? Mit
Code: Alles auswählen
System.out.println(airportMap.toString());
Code: Alles auswählen
[Airport@a90653, Airport@de6ced, Airport@c17164, Airport@1fb8ee3]
- guido
- Computerversteher
- Beiträge: 380
- Registriert: 30. Nov 2003 21:24
- Wohnort: Mühltal
- Kontaktdaten:
Re: Übung 11 online!!!!
Weder noch; vermutlich hast Du in Airport die Methode "public String toString()" nicht überschrieben. Dann kommt das angezeigte heraus.ChRiZz88 hat geschrieben:Wenn ich das Objekt außerhalb der for-Schleife lösche, brauche ich ja die Schleife zu nix...
Denn ich muss ja in der Schleife zumindest eine externe Funktion aufrufen, die sofort löscht, denn mit dem nächsten Durchlauf ist der schöne Wert, den ich löschen mag, auch schon wieder weg...
Achja und .length geht nicht, weils ne LinkedList ist :/
Okay andre Frage: Wie kann ich mir ne LinkedList ausgeben lassen? Mitkommt raus:Code: Alles auswählen
System.out.println(airportMap.toString());
Ist das ein ausgabetechnischer Fehler oder liegt das an einem Fehler in meiner addAirport?Code: Alles auswählen
[Airport@a90653, Airport@de6ced, Airport@c17164, Airport@1fb8ee3]
Mit Code wie etwa folgendem sollte die Ausgabe "passen":
Code: Alles auswählen
public String toString() {
StringBuffer sb = new StringBuffer(256);
sb.append("Airport '").append(getName()).append(", location: (");
sb.append(getX()).append(", ").append(getY()).append(")");
return sb.toString();
}

Guido
Re: Übung 11 online!!!!
Bezüglich der Datenstruktur für die Airports schließ' ich mich dem s!mon an und sag hashmap. Wenn man sich da kurz ein bisschen mit beschäftigt wird man sehen, dass es echt schnell und einfach geht.
Edit: Ich seh' grad, ich hab's mit ner Hashtable gemacht. Scheint in dem Fall keinen Unterschied zu machen.
Edit: Ich seh' grad, ich hab's mit ner Hashtable gemacht. Scheint in dem Fall keinen Unterschied zu machen.
Saying that Java is nice because it works on all Plattforms is like saying that anal sex is nice because it works on all genders.
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Re: Übung 11 online!!!!
Ich verstehe das Problem gerade net ganz...bei ArrayList (evtl. Collections allgemien) gibt es doch die Methode remove(<T> e), also löscht er das erste vorkommen von dem Objekt in der Liste. Und wenn ich also nur den Airportnamen habe, kann ich ja mir das entsprechende Airportobjekt aus der Liste raussuchen und dann mit meiner Liste myList.remove(airportobject) den Airport löschen.
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 11 online!!!!
Der Grund für die Schleife ist (bei mir zumindest), dass ich alle Vorkommen des Flughafens löschen will.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Re: Übung 11 online!!!!
Wie soll das Ergebnis denn aussehen? D.h. die Ausgabe, die nach Flight route test finished zu kommen hat? Das Ende meiner Ausgabe sieht in etwa so aus:
Code: Alles auswählen
-----Flight route test finished-----
-----Delete Test finished-----
Re: Übung 11 online!!!!
@ChRiZz88, zwischen flight test und delete test müsste noch eine meldung kommen, weil du versuchst zum flüghafen fliegen, den es gar nicht gibt
also müsste deine delete-methode falsch funktionieren
Code: Alles auswählen
test.deleteAirport("Köln");
try {
test.flyTo("Köln");
} catch (AirborneComputerException e) {
System.out.println(e.getMessage());
}
System.out.println("-----Delete Test finished-----");
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.
Re: Übung 11 online!!!!
ups, Posting des Vorgängers überlesen
Interpreter/Parser reported on Nov 12, 2008 8:30:04 PM:
Number too big (102 > 42).
Number too big (102 > 42).
Re: Übung 11 online!!!!
Außer er wirft gar keinen FehlerJo(h)nny hat geschrieben:@ChRiZz88, zwischen flight test und delete test müsste noch eine meldung kommen, weil du versuchst zum flüghafen fliegen, den es gar nicht gibtalso müsste deine delete-methode falsch funktionierenCode: Alles auswählen
test.deleteAirport("Köln"); try { test.flyTo("Köln"); } catch (AirborneComputerException e) { System.out.println(e.getMessage()); } System.out.println("-----Delete Test finished-----");

Re: Übung 11 online!!!!
@Osterlaus, nun ja dann funktioniert die flyTo nicht richtig, also auf jedem fall ist da was nicht ganz in ordnung:)
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.