Objecte in TreeSet einfügen klappt nicht

JavaAnfänger72

Aktives Mitglied
Hallo, ich versuche mehrere Objekte in ein TreeSet einzufügen.
Warum befindet sich in meinem Treeset treeSet nur ein Object obwol ich
fünf Objekcte eingefügt habe? Was muss ich machen damit ich alle fünf Objektcte
in das TreeSet einfügen kann?

Vielen Dank für jede Antwort !!!

Code:
import java.util.TreeSet;
import java.lang.Comparable;

class Tiere implements Comparable <Tiere>  {
   
    String art = "";
   
    Tiere(String art){
        this.art = art;
    }

    @Override
    public int compareTo(Tiere o) {
        return 0;
    }   
}

public class TreeSetTest {
   
    public static void main(String[] args) {
       
        TreeSet<Tiere> treeSet = new TreeSet<Tiere>();
       
        Tiere tier1 = new Tiere("Löwe");
        Tiere tier2 = new Tiere("Affe");
        Tiere tier3 = new Tiere("Maus");
        Tiere tier4 = new Tiere("Tiger");
        Tiere tier5 = new Tiere("Elefand");
       
        treeSet.add(tier1);
        treeSet.add(tier2);
        treeSet.add(tier3);
        treeSet.add(tier4);
        treeSet.add(tier5);
       
        System.out.println(treeSet.size());
       
        for (Tiere i : treeSet) { 
            System.out.println(i);  
        }                                    
    }                                       
}
 

Joose

Top Contributor
Warum befindet sich in meinem Treeset treeSet nur ein Object obwol ich
fünf Objekcte eingefügt habe? Was muss ich machen damit ich alle fünf Objektcte
in das TreeSet einfügen kann?

Weil du die compareTo Methode einfach falsch implementiert hast, implementiere sie richtig und funktioniert.

Anmerkungen zu deinem Code:
Code:
class Tiere implements Comparable <Tiere>  {
Sollen Objekte deiner Klasse "Tiere" eine Tierart darstellen, eine einzelnes Tier oder eine Gruppe von Tieren?
"Tiere" ist eine schlechte Wahl als Klassennamen da es sich um eine Mehrzahl handelt. Entweder "Tier" (für ein einzelnes Tier) oder "Tierart" wenn du die Tierart darstellen willst.
 

InfectedBytes

Top Contributor
Weil dein compareTo müll ist. TreeSet benutzt die compareTo Methode um herauszufinden ob ein objekt größer/kleiner oder gleich einem anderen ist.
Da du immer 0 zurückgibst, bedeutet dies für das TreeSet, das alle Objekte die eingefügt werden das selbe sind.
 

JavaAnfänger72

Aktives Mitglied
@InfectedBytes, wenn ich's ohne das Interfaces Comparable und die Methode compareTo mache bekomme ich eine ClassCastException:

Code:
Exception in thread "main" java.lang.ClassCastException: Tier cannot be cast to java.lang.Comparable
    at java.util.TreeMap.compare(TreeMap.java:1294)
    at java.util.TreeMap.put(TreeMap.java:538)
    at java.util.TreeSet.add(TreeSet.java:255)
    at TreeSetTest.main(TreeSetTest.java:31)
 

JavaAnfänger72

Aktives Mitglied
Vielen Dank für eure hilfreichen Kommentare !!!
Ich habe es nun durch die folgende Ausformulierung der compareTo Methode gelöst.
Falz es an meiner Implementierung was zu kritisieren gibt nur raus damit. :)
C:\Users\T510a\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif

Code:
public int compareTo(Tier t){
        return this.art.compareTo(t.art); 
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Input/Output Alternative zur Serialisierung/ ImageJ Objecte Java Basics - Anfänger-Themen 7
D Input/Output Mehrere Objecte in einer Datei Java Basics - Anfänger-Themen 5
M Alle Objecte mit selber Vairable Java Basics - Anfänger-Themen 3
W Objecte in (Text)Datei speichern Java Basics - Anfänger-Themen 3
R Objecte Serialisieren / Deserialisieren Java Basics - Anfänger-Themen 2
G Wie mach ich ein HashSet für eigene Objecte? Java Basics - Anfänger-Themen 9
T Java Programm ordnet meine Objecte immer falsch an Java Basics - Anfänger-Themen 4
M Object zu Int Problem, obwohl einzelne Objecte Int sind =( Java Basics - Anfänger-Themen 2
H Objecte aus einer Liste heraus benutzen ? Java Basics - Anfänger-Themen 3
B Objete von Polygon mit TreeSet verwalten Java Basics - Anfänger-Themen 1
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
J Klassen HashSet, TreeSet: unregelmäßige Zahlenreihen beim Befüllen Java Basics - Anfänger-Themen 7
G Laufzeit/ O/Θ-Notation einer Treeset Methode Java Basics - Anfänger-Themen 0
J TreeSet mit compareTo sortieren Java Basics - Anfänger-Themen 2
W Add zu TreeSet Probleme Java Basics - Anfänger-Themen 6
T TreeSet sortiert in ein anderes kopieren Java Basics - Anfänger-Themen 2
Todesbote Treeset - Wenn bestimmtes Objekt vorkommt Counter erhöhen Java Basics - Anfänger-Themen 6
Todesbote Map<String, Treeset> aus Treeset bestimmten Wert auslesen Java Basics - Anfänger-Themen 4
A Treeset per For-Schleife durchlaufen Java Basics - Anfänger-Themen 2
U TreeSet und Komparatoren Java Basics - Anfänger-Themen 6
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
B Lotto mittels TreeSet Java Basics - Anfänger-Themen 3
D Datentypen TreeSet aus einer List<String[]> befüllen Java Basics - Anfänger-Themen 18
M Treeset sortieren und ausgeben Java Basics - Anfänger-Themen 17
K TreeSet Sortieren Java Basics - Anfänger-Themen 6
E TreeSet Element löschen Java Basics - Anfänger-Themen 9
T treeSet durchsuchen Java Basics - Anfänger-Themen 2
R Sortieren TreeSet Java Basics - Anfänger-Themen 2
G HashSet vs. TreeSet Java Basics - Anfänger-Themen 3
M Problem beim Löschen des ersten Eintrags einer TreeSet Java Basics - Anfänger-Themen 3
J TreeSet methode Remove Java Basics - Anfänger-Themen 13
M TreeSet sortieren Java Basics - Anfänger-Themen 13
C Maximal-Anzahl von Objekten in TreeSet Java Basics - Anfänger-Themen 7
S TreeSet und StringTokenizer Java Basics - Anfänger-Themen 6
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
R Inventar und Items auf ein 2D ArrayFeld einfügen Java Basics - Anfänger-Themen 2
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
O BinärBaum einfügen Java Basics - Anfänger-Themen 13
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
S Elemente in Liste einfügen Java Basics - Anfänger-Themen 2
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
T Variablen “ in String einfügen Java Basics - Anfänger-Themen 1
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
S Doppelte Liste Einfügen Java Basics - Anfänger-Themen 1
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
R Spielfeldbegrenzung einfügen (Java)? Brauche Hilfe! Java Basics - Anfänger-Themen 15
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Tausende Wörter in Arrays automatisch einfügen Java Basics - Anfänger-Themen 10
J Wie kann ich Images per Tastendruck anzeigen/einfügen? Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
J Scroll-Leiste einfügen Java Basics - Anfänger-Themen 12
U Sound einfügen Java Basics - Anfänger-Themen 6
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
S Bild einfügen Java Basics - Anfänger-Themen 16
D Taschenrechnerereignisse einfügen Java Basics - Anfänger-Themen 18
B Vererbung In offener Hash Tabelle einfügen Java Basics - Anfänger-Themen 4
W Listenelement einfügen Java Basics - Anfänger-Themen 9
P OOP Eingabevariablen der Klasse Raum in der Methode addEvent ans Ende einer ArrayList einfügen Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
D Datenbankzugriff - Leere Zeile einfügen Java Basics - Anfänger-Themen 2
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
A Objekte in eine Liste einfügen Java Basics - Anfänger-Themen 7
J Methoden Einfügen von Objekten nach Alphabet in ArrayList funktioniert nicht Java Basics - Anfänger-Themen 2
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
F Collections Sortierung und Einfügen von Elementen Java Basics - Anfänger-Themen 1
K Erste Schritte Classe in andere Einfügen?? Java Basics - Anfänger-Themen 12
P Klasse in Klasse einfügen (arrayliste) Java Basics - Anfänger-Themen 7
F Bibliotheken einfügen ??? Java Basics - Anfänger-Themen 2
P Hintergrundbild in Swing einfügen Java Basics - Anfänger-Themen 3
T HashMap Werte einfügen, durchsuchen und auslesen Java Basics - Anfänger-Themen 17
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
Q Erste Schritte In CharArrayWriter Zeichen an Stelle einfügen Java Basics - Anfänger-Themen 4
J Daten in eine JList einfügen Java Basics - Anfänger-Themen 6
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben