tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
331
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    drakonia666 drakonia666 ist offline Grünschnabel
    Registriert seit
    Jan 2010
    Beiträge
    2
    Halloechen zusammen,

    inzwischen hat sich mal wieder ein Problem ergeben, welches ich so ohne weiteres nicht alleine geloest bekomme. Ich habe inzwischen schon einiges ausprobiert, aber wohl nicht das Richtige. Ich programmiere noch nicht sehr lange und beschaeftige mich im Moment mit ArrayLists. Zum Hintergrund des Problems: Ich habe eine ArrayList, die verschiedene Mannschaftsbegegnungen (mannschaftsPaarungen) einer Sportliga enthaelt (Mannschaftsnummer A und Mannschaftsnummer B). Da ich allerdings diese Mannschaftsnummer der Ubersichtlichkeit halber fuer die Ausgabe wieder in einen Mannschaftsnamen aendern moechte, wollte ich gern den Namen aus einer 2. ArrayList (listeDerMannschaften) mit Objekten vom Typ Mannschaft auslesen. Die Objekte vom Typ Mannschaft enthalten diverse Attribute, u.a. die Mannschaftsnummer, den Namen, Herkunft etc. In beiden Listen sind also die Mannschaftsnummern hinterlegt. Im Array mit den Mannschaften immer nur jeweils 1x (da jede Mannschaft eine eindeutige Nummer hat). In der Liste mit den Begegnungen kommen die Mannschaftsnummer mehrfach vor.

    Die Ausgabe der ersten Liste sieht wie folgt aus:

    3-1
    2-4
    2-1
    4-3
    2-3
    1-4

    Ich habe 4 Mannschaften (test1, test2, test3, test4) in meiner Mannschaftsliste, die fuer Begegnungen zusammengewuerfelt werden, wobei oben stehende Liste herauskommt. Die Ausgabe ist korrekt und nichts ist doppelt. So weit so gut. Jetzt habe ich (mit meinem begrenzten Wissen) versucht, das Ganze mit der 2. Liste zu vergleichen. Dazu habe ich folgenden Code verwendet:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    String heimMannschaft = "heim";
    String gastMannschaft = "gast";
            
            for(Spiel spiele : mannschaftsPaarungen) {
                for(Mannschaft mannschaft : listeDerMannschaften) {
                    if (spiele.getMannschaftA() == mannschaft.getMannschaftsNummer()) {
                        heimMannschaft = mannschaft.getMannschaftsName();
                    }
                    if (spiele.getMannschaftB() == mannschaft.getMannschaftsNummer()) {
                        gastMannschaft = mannschaft.getMannschaftsName();
                    }
                    System.out.println(heimMannschaft + " - " + gastMannschaft);
                }
    }

    Dummerweise scheint da irgendwas nicht zu stimmen, denn die Ausgabe ist ploetzlich voelliger Murks:

    heim - test1
    heim - test1
    test3 - test1
    test3 - test1
    test3 - test1
    test2 - test1
    test2 - test1
    test2 - test4
    test2 - test1
    test2 - test1
    test2 - test1
    test2 - test1
    test2 - test1
    test2 - test1
    test2 - test3
    test4 - test3
    test4 - test3
    test2 - test3
    test2 - test3
    test2 - test3
    test1 - test3
    test1 - test3
    test1 - test3
    test1 - test4

    Vielleicht habe ich auch den falschen Loesungsansatz oder es gibt wesentlich elegantere Methoden als die von mir benutzte. Ich waere euch sehr dankbar, wenn ihr mir bei diesem Problem weiterhelfen koenntet. Vielen Dank!

    LG
    drakonia666


    EDIT: *narf* Ich sollte mal mehr schlafen.... Da sieht man den Wald trotz der ganzen Baeume auch wieder. Die Schleife kann so natuerlich nicht funktionieren, da die Ausgabe an der falschen Stelle war. Richtigerweise muss die Ausgabe natuerlich vor der letzten geschweiften Klammer stehen...
    Geändert von drakonia666 (13.01.10 um 18:38 Uhr)
     

  2. #2
    Avatar von SilentWarrior
    SilentWarrior SilentWarrior ist offline Mitglied Diamant
    Registriert seit
    Dec 2001
    Beiträge
    3.078
    Gibt es einen bestimmten Grund, warum du in der ersten ArrayList nicht direkt Mannschaft-Objekte verwendest? An der Performance kann es ja nicht liegen, bei nur vier Mannschaften. Dann könntest du nämlich direkt aus den Objekten die Mannschaftsnamen auslesen.
     

  3. #3
    drakonia666 drakonia666 ist offline Grünschnabel
    Registriert seit
    Jan 2010
    Beiträge
    2
    Hm nein eigentlich hat das keinen bestimmten Grund. Dachte mir nur, dass ich Spiele und Mannschaften voneinander trenne (also die Objekte), so dass die Liste der Begegnungen moeglichst uebersichtlich bleibt. Ansonsten muesste ich in der Liste ja z.B. Spiel1: Mannschaft mannschaftA, Mannschaft mannschaftB speichern. Wie gesagt, ich beschaeftige mich erst seit kurzem mit ArrayLists und habe von (sinnvoller) Strukturierung oder gar den Moeglichkeiten noch nicht so die Ahnung... Da es sich um eine Uebungsaufgabe handelt und die Vorgabe vorsieht, dass in der Klasse Spiel nur MannschaftA und MannschaftB hinterlegt sind, dachte ich mir dass das so hinhaut. Oder koennte ich dann dort bei den Attributen direkt auf Mannschafts-Objekte verweisen?
     

  4. #4
    Avatar von tim staeglich
    tim staeglich tim staeglich ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    84
    Hi,

    mache Dir am besten zuerst mal eine einfache Skizze für die Struktur. Weg vom Code, nur Struktur.

    Tipp: Denke nicht "ich habe 2 Mannschaften und ein Spiel".
    Denke eher

    -Es gibt Spiele (allgemein)
    - Woraus setzet sich ein Spiel zusammen =>
    - n Mannschaftsobjekte, Dauer, Bedingungen
    - Mannschaftsobjekt hat n Spieler

    Usw. usw.. Diese Dinge bringst Du in Beziehung untereinander und bildest dann die Beziehung ab.

    Es sollte Dir zunächst ganz egal sein, ob Du nun ArrayLists oder oder verwendest. Weg vom technischen. Denke ganz grundsätzlich und abstrakt.
    Technik kommt dann, wenn Du dir über die wesentlichen Punkte ein Bild gemacht hast.

    Die Beziehungen sind wichtig, wer mit wem, wer zu wem etc..

    Viele Grüße, Tim
    Geändert von tim staeglich (18.01.10 um 12:13 Uhr)
     
    XING -- Hat Dir mein Beitrag geholfen? Dann würde ich mich über eine positive Bewertung freuen!

  5. #5
    Avatar von Chefkoch333
    Chefkoch333 Chefkoch333 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    112
    Hi tausche mal Zeile 12 und 13. Danach sollte es gehen. Ansonsten hat Tim mit seinem Ansatz recht.
     

  6. #6
    FrankBooth FrankBooth ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Ort
    Osnabrück (Niedersachsen)
    Beiträge
    244
    Warum erinnert mich das so an diesen Thread:

    geschachtelte-arraylists-auslesen-nested-arraylist

    Da arbeiten wohl zwei zusammen
     

  7. #7
    Avatar von Chefkoch333
    Chefkoch333 Chefkoch333 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    112
    ist wahrscheinlich die Hausaufgabe im Informatik LK.

    Naja hoffen wir für die beiden das der Prüfer kein goolge bedienen kann :-p
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 04.12.10, 15:45
  2. C#, ArrayLists und ComboBoxes
    Von maeg im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 24.03.10, 09:36
  3. Dickes Problem mit Arrays/Arraylists
    Von bwun im Forum Java
    Antworten: 3
    Letzter Beitrag: 29.10.04, 19:42
  4. Brauche hilfe beim vergleichen
    Von Lukasz im Forum PHP
    Antworten: 4
    Letzter Beitrag: 16.12.03, 19:41
  5. Antworten: 8
    Letzter Beitrag: 19.09.02, 15:21