Vergleichsmethode zum Objekt-Vergleich mit < und >

  • Themenstarter Themenstarter Spellsleeper
  • Beginndatum Beginndatum
S

Spellsleeper

Gast
Welche Methode muss ich überschreiben damit ich Objekte einer Klasse später mit '<' und '>' vergleichen kann. ich bin jetzt mal davon ausgegangen das dies Funktioniert weil es in C++ und C# auch die Möglichkeit gibt.

Bitte erhellt meinen Geist
 
compareTo aus dem java.lang.Comparable<T> Interface wobei du dann auch diese Methode verwenden muss. Du kannst in Java Objekte nicht mit >< verlgeichen, da es keine Operator Überladung gibt.
 
Hi,

evtl. hilft Dir dieser Code.

Java:
/**
     * Sortiert eine LinkedList mit JComponents nach deren Namen (JComponent.getName())
     * @param list
     * @return nach Namen sortierte LinkedList<JComponent>
     */
    public static LinkedList<JComponent> sortListWithJComponents(LinkedList<JComponent> list)
    {
        Collections.sort(list, new Comparator<Object>() {

            @Override
            public int compare(Object o1, Object o2) {
//                throw new UnsupportedOperationException("Not supported yet.");
                JComponent help1 = (JComponent)o1;
                JComponent help2 = (JComponent)o2;

                return ((String)help1.getName()).compareTo((String)help2.getName());//hier wird verglichen
            }
        });
        return list;
    }

Gruß
tschero
 
Hi,

evtl. hilft Dir dieser Code.
Der Code enthält den richtigen Ansatz. Gerade auch der Verweis auf Comparator statt Comparable ist sehr gut. Aber das ganze Gecaste ist unnötig. Wenn, dann lieber so (nur der Comparator-Teil):
Java:
...
new Comparator<JComponent>() {
 
            @Override
            public int compare(JComponent first, JComponent second) {
 
                return first.getName().compareTo(second.getName());//hier wird verglichen
            }
        });
...
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben