Methoden compareable ? Wie umsetzbar ?

korbayy

Mitglied
hallo

ich habe 2 Klassen : State und Tupel

Letztendlich sollte dies einen Automaten darstellen.

D.h jeder State durchnummeriert von 1 - n hat eine Tupelliste ( diese sagt aus mit welcher zahl zu welchem anderen State gesprungen werden kann ). [ zB State 1 tupellist : (1,3) , (1,2) , (1,4) etc. ]
Nun soll ich diesen Automaten sortiert auf der Konsole ausgeben.
Sprich:
(1,2)
(1,3)
(1,4)
Wie ist das umsetzbar ?
hab irgendetwas mit "implements comparable" gelesen. Wie macht man das ? bzw wo ruft man das dann auf ? direkt beim toString aufruf oder sollte man die schon sortiert einfügen ?
 

Harry Kane

Top Contributor
Tupel könnte z.B. Comparable<Tuple> implementieren, dann kann z. B. eine List<Tupel> mit Collections.sort(aListOfTuples) sortiert werden.
Wie sieht denn die Tupel-Klasse aus?
 

korbayy

Mitglied
Java:
// Die State klasse :

private List<Collection<Verbindung>> listeDerVerbindungen = new ArrayList<Collection<Verbindung>>();

public String toString() {
        String display = "";
        for (Collection<Verbindung> verbindungsliste: listeDerVerbindungen) {
            for (Verbindung verb : verbindungslsite) {
                display += "\n" + verb.toString();
            }
        }
        return display;
    }

// etc etc...

//Die Tupel Klasse:

public class Verbindung implements Comparable<Verbindung> {
    private State herkunft;
    private State ziel;
    private char uebergang;

public int compareTo(Transition transition) {
       // TO DO !
    
        return 0;
    }
public String toString() {
        return ("(" + herkunft.getName() + ", "
                    + ziel.getName() + ") " + uebergang);
    }
}



Mir fehlt hier einfach die Erfahrung bzw das Wissen , wie man ein "compareable" selbst schreibt. Wie kann ich das nun so machen , dass es mir die Verbindungen in der korrekten reihenfolge ausgibt ?
 
Zuletzt bearbeitet von einem Moderator:

Harry Kane

Top Contributor
Was sagt der Compiler zu deinem Code?
Wenn Verbindung das Interface Comparable<Verbindung> implementiert, muss sie eine Methode compareTo(Verbindung) anbieten. Ich sehe aber nur compareTo(Transition).
 

Harry Kane

Top Contributor
Comparable impliziert, dass es so etwas wie eine "natürliche Ordnung" gibt.
Was ist genau deine Frage: was die korrekte Reihenfolge ist, oder welchen Code man schreiben muss, damit die Sortierung in der korrekten Reihenfolge erfolgt?
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben