Übung 11 online!!!!

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 11 online!!!!

Beitrag von Krümelmonster » 30. Jan 2008 17:48

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.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von ChRiZz88 » 30. Jan 2008 17:50

So sieht meine for-Schleife aus:

Code: Alles auswählen

for (Airport item : airportMap){
...
}
Wie solls denn aussehn?

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 11 online!!!!

Beitrag von Krümelmonster » 30. Jan 2008 17:56

Code: Alles auswählen

for (int i=0; i<airportMap.length(); i++) {
...
}
Entsprechend musst du noch die Methoden anpassen, die vorher item benutzt haben.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Re: Übung 11 online!!!!

Beitrag von s!mon » 30. Jan 2008 17:58

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 :)

Mojito Mix
DON'T PANIC
Beiträge: 42
Registriert: 10. Okt 2007 18:28

Re: Übung 11 online!!!!

Beitrag von Mojito Mix » 30. Jan 2008 19:20

ChRiZz88 hat geschrieben:So sieht meine for-Schleife aus:

Code: Alles auswählen

for (Airport item : airportMap){
...
}
Wie solls denn aussehn?
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
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von ChRiZz88 » 31. Jan 2008 00:00

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

Code: Alles auswählen

System.out.println(airportMap.toString());
kommt raus:

Code: Alles auswählen

[Airport@a90653, Airport@de6ced, Airport@c17164, Airport@1fb8ee3]
Ist das ein ausgabetechnischer Fehler oder liegt das an einem Fehler in meiner addAirport?

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von guido » 31. Jan 2008 09:59

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? Mit

Code: Alles auswählen

System.out.println(airportMap.toString());
kommt raus:

Code: Alles auswählen

[Airport@a90653, Airport@de6ced, Airport@c17164, Airport@1fb8ee3]
Ist das ein ausgabetechnischer Fehler oder liegt das an einem Fehler in meiner addAirport?
Weder noch; vermutlich hast Du in Airport die Methode "public String toString()" nicht überschrieben. Dann kommt das angezeigte heraus.

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();
}
Jedenfalls, wenn Du entsprechende Attribute bzw. Methoden im Airport besitzt :)

Guido

Benutzeravatar
Demmi
Kernelcompilierer
Kernelcompilierer
Beiträge: 423
Registriert: 1. Okt 2007 12:56
Wohnort: Darmstadt

Re: Übung 11 online!!!!

Beitrag von Demmi » 31. Jan 2008 15:28

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.
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.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von Stumpf.Alex » 31. Jan 2008 15:52

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.

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 11 online!!!!

Beitrag von Krümelmonster » 31. Jan 2008 15:56

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!

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von ChRiZz88 » 31. Jan 2008 16:15

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-----

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: Übung 11 online!!!!

Beitrag von Jo(h)nny » 31. Jan 2008 16:39

@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

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-----");
also müsste deine delete-methode falsch funktionieren
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Wambolo
Computerversteher
Computerversteher
Beiträge: 381
Registriert: 18. Okt 2007 11:36

Re: Übung 11 online!!!!

Beitrag von Wambolo » 31. Jan 2008 16:44

ups, Posting des Vorgängers überlesen
Interpreter/Parser reported on Nov 12, 2008 8:30:04 PM:
Number too big (102 > 42).

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Re: Übung 11 online!!!!

Beitrag von Osterlaus » 31. Jan 2008 17:04

Jo(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 gibt

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-----");
also müsste deine delete-methode falsch funktionieren
Außer er wirft gar keinen Fehler ;)

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: Übung 11 online!!!!

Beitrag von Jo(h)nny » 31. Jan 2008 17:27

@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.

Antworten

Zurück zu „Archiv“