Objekte vergleichen?

Status
Nicht offen für weitere Antworten.

titus

Mitglied
Kann mir jemand einen Tipp geben, wie ich zwei Variablen vom Typ Object vergleichen kann? Ich möchte dabei herausfinden, welche der beiden Variablen die kleinere ist.

Ich habe schon gegoogelt und bin auf einen Hinweis auf compare() und compareTo() gestoßen. Das Problem ist nur, dass mir NetBeans sagt: "cannot find symbol". Muss ich dafür irgendwelche Bibliotheken via import einbinden oder was mache ich falsch?

Ich versuche den Vergleich wie folgt ...

Code:
compare(i2.getElement(),  min.getElement());
 

titus

Mitglied
Ach ja, das hatte ich vergessen: Genau, das habe ich auch schon ausprobiert. Aber auch hier scheint compareTo() unbekannt zu sein. :( Was mache ich nur falsch?
 

titus

Mitglied
Also die Objekte enthalten eigentlich nur zahlen. Ich würde ja auch, wenn es nach mir ginge, dann Integer vergleichen, aber nicht, wenn es nach unserem Prof geht. :D

Hier ist der gesamte Code, der sicherlich noch nicht zu 100 % frei von Fehlern ist, wie ich mich kenne. ;) Der vergleich soll in der Methode selectionSort() statt finden. ...

Code:
package doublelist;

import java.lang.Comparable.*;
import java.util.Comparator.*;

class DoubleList {
    private ListElem m_Head;    // Anfang der Liste
    private ListElem m_Tail;   // Ende der Liste
    private boolean  m_isQueue;

    // Der Listen-Konstruktor ...
    public DoubleList(boolean isQueue) {
        m_Head = null;  // ... erwartet kein Argument.
        m_Tail = null;
        m_isQueue = isQueue;

        if (! m_isQueue)
            System.out.println("Hallo, ich bin ein Stack! :-)");

        if (m_isQueue)
            System.out.println("Hi! Ich bin die Queue! ;-)");
    }

    // Durchlauf und Ausgabe aller Elemente
    public void print() {
        /* Die Liste wird so lange durchlaufen, bis das letzte Element erfasst
         * und ausgegeben wurde - eben so lange, so lange elem != NULL ist. */
        if (m_isQueue) {
            for (ListElem elem = m_Tail; elem != null; elem = elem.getPrev())
                System.out.print(elem.getElement() + "; ");
        }
        else {
            for (ListElem elem = m_Head; elem != null; elem = elem.getNext())
                System.out.print(elem.getElement() + "; ");
        }
        System.out.println();
    }

    // Fügt ein Element in die Liste ein
    public void addElement(Object obj) {
        /* Das 1. Element ist das kürzlich eingefügte Element. Ein Nachfolger-
         * Element existiert nicht, folglich ist es sein eigener Nachfolger.*/
        m_Head = new ListElem(obj, m_Head, null);
        
        // Falls die Liste eine Queue ist ...
        if (m_isQueue) {
            // ... und die Liste noch leer ist ...
            if (m_Tail == null)
                // ... lege das letzte Element fest.
                m_Tail = m_Head;
        }
    }

    // Findet ein Element
    public ListElem findElement(Object obj) {
        // Durchläuft die Liste so lange, bis ...
        for (ListElem tmp = m_Head; tmp != null; tmp = tmp.getNext()) {
            // ... ein Element gefunden wurde, was der Suchanfrage entspricht.
            if (tmp.getElement().equals(obj)) {
                // Liefere gefundenes element zurück.
                return tmp;
            }
        }
        // Ansonsten gebe null zurück (nichts gefunden).
        return null;
    }

    void deleteElem(ListElem pElem2Delete) {
        // Soll überhaupt ein Element gelöscht werden?
        if (pElem2Delete != null) {
            // Soll das Start-Element gelöscht werden?
            if (m_Head == pElem2Delete) {
                // Setze das nächste Element als Start-Element
                m_Head = pElem2Delete.getNext();
            }

            // Wenn es einen Vorgänger gibt, ...
            if (pElem2Delete.getPrev() != null) {
                // ... häng dessen Nachfolger um.
                pElem2Delete.getPrev().setNext(pElem2Delete.getNext());
            }

            // Wenn es einen Nachfolger gibt, ..
            if (pElem2Delete.getNext() != null) {
                // ... häng dessen Vorgänger um.
                pElem2Delete.getNext().setPrev(pElem2Delete.getPrev());
            }
        }
    }


    // Selection Sort
    void selectionSort() {
        // Durchlaufe die gesamte Liste bis zum Ende
        for (ListElem i1 = m_Head; i1 != null; i1 = i1.getNext()) {
            // Merke dabei die Position des jeweils kleinsten Elements
            ListElem min = i1;
            // Durchlaufe die Liste bis zu Ende, jeweils ab i1 + 1 und ...
            for (ListElem i2 = i1.getNext(); i2 != null; i2.getNext()) {
                // prüfe auf den kleinsten Wert.
                i2.getElement().compareTo(min.getElement());
                if ( < 0) {
                    // Merke klensten Wert
                    min = i2;
                }
            }
            // Vertausche Elemente
            swap(min, i1);
        }
    }

    // Vertausche Elemente
    static void swap(ListElem iPos1, ListElem iPos2) {
        ListElem tmp = iPos1;
        iPos1 = iPos2;
        iPos2 = tmp;
    }

    // implementiert ein Listen-Element
    class ListElem {
        // Ein Listen-Element merkt sich ...
        private ListElem m_Next; // ... den Verweis auf das nächste Element, ...
        private ListElem m_Prev; // ... den Verweis auf das vorherige Element...
        private Object   m_Elem; // ... und das Element.

        // Der Konstruktor des Listen-Elements erwartet ...
        public ListElem(Object obj, ListElem next, ListElem prev) {
            m_Next = next;  // ... den Verweis auf das nächste Element ...
            m_Prev = prev;  // ... den Verweis auf das vorherige Element...
            m_Elem = obj;   // ... und das zu speichernde Element.

            // Wenn es ein nächstes Element gibt, dann ...
            if (m_Next != null)
                // ... bin ich der Vorgänger von meinem vorherigen Element.
                m_Next.setPrev(this);

            // Wenn es ein vorheriges Element gibt, dann ...
            if (m_Prev != null)
                // ... bin ich der Nachfolger von meinem vorherigen Element.
                m_Prev.setNext(this);
        }

        // Liefert ein Element aus der Liste
        public Object getElement() {
            return m_Elem;
        }

        // Liefert den Verweis auf das nächste Element
        public ListElem getNext() {
            return m_Next;
        }

        // Liefert den Verweis auf das vorherige Element
        public ListElem getPrev() {
            return m_Prev;
        }

        public void setNext(ListElem next) {
            this.m_Next = next;
        }

        public void setPrev(ListElem prev) {
            this.m_Prev = prev;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        // Erstelle eine Liste
        DoubleList dl = new DoubleList(false);

        // Fülle Liste mit 20 Zahlen
        for (int i = 0; i < 20; ++i)
            dl.addElement((int)Math.round(Math.random() * 20));

        // Gebe Liste aus
        dl.print();

        dl.selectionSort();

//        dl.deleteElem(dl.findElement(8));
//        dl.print();
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
K JUnit: Objekte von eigenen Klassen vergleichen...geht nicht Java Basics - Anfänger-Themen 5
A Objekte aus 2 Klassen mit compareTo() vergleichen Java Basics - Anfänger-Themen 7
F Objekte vergleichen kleiner/größer? Java Basics - Anfänger-Themen 4
M Objekte vergleichen Java Basics - Anfänger-Themen 5
P Serialisierung - Objekte vergleichen Java Basics - Anfänger-Themen 4
O Objekte miteinander vergleichen und sortieren Java Basics - Anfänger-Themen 10
I Erstellte Objekte in Array's miteinander vergleichen Java Basics - Anfänger-Themen 11
W Objekte Vergleichen Java Basics - Anfänger-Themen 11
L Objekte in einer ArrayList vergleichen Java Basics - Anfänger-Themen 19
S Objekte vergleichen Java Basics - Anfänger-Themen 4
C 2 Objekte (mathematisch) vergleichen in der equals Methode Java Basics - Anfänger-Themen 10
G Objekte vom Typ Date vergleichen Java Basics - Anfänger-Themen 2
G Objekte Vergleichen Java Basics - Anfänger-Themen 5
C Objekte auf gleichheit vergleichen Java Basics - Anfänger-Themen 3
D Initialisierung von Klassen-Objekte Java Basics - Anfänger-Themen 47
W Objekte erzeugen Httprequest oder Httpclient Java Basics - Anfänger-Themen 3
G Kann Arrays.stream() auch auf Objekte angewant werden? Java Basics - Anfänger-Themen 40
krgewb Über Objekt, das Objekte desselben Typs enthält iterieren Java Basics - Anfänger-Themen 5
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
J Objekte Java Basics - Anfänger-Themen 22
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
E Objekte löschen Java Basics - Anfänger-Themen 9
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
G Übergeordnete Objekte abrufen Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
P Globale Objekte Java Basics - Anfänger-Themen 2
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
A (Objekte Java Basics - Anfänger-Themen 6
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
G Objekte in Methoden? Java Basics - Anfänger-Themen 13
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
I Objekte Hilfe Java Basics - Anfänger-Themen 8
G Klassen und Objekte Java Basics - Anfänger-Themen 2
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3
C Objekte und Konstruktoren Java Basics - Anfänger-Themen 2
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
O ObjectOutputStream Anzahl Objekte festhalten Java Basics - Anfänger-Themen 17
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
J Best Practice Dateiinhalte validieren und auf Objekte mappen Java Basics - Anfänger-Themen 3
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
PaperHat Programmieraufgabe - Objekte in Objekten Java Basics - Anfänger-Themen 2
E Methode mit Parametern um Objekte zu übergeben Java Basics - Anfänger-Themen 4
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
T Klassen Klassenübergreifende Objekte erstellen lassen Java Basics - Anfänger-Themen 5
A Objekte verknüpfen Java Basics - Anfänger-Themen 2
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben