Collections TreeSet.contains ruft nicht .equals?

thinktank

Mitglied
Hallo in die Runde!

Wenn ich bei meinem Treeset die .contains rufe, läuft er in die compareTo statt in die erwartete .equals Methode rein? Das verstehe ich nicht, da laut Doku mit equals geprüft werden soll...

TreeSet (Java Platform SE 6)

Hat jemand einen Tip, warum das so ist?

Vielen Dank und Grüße
 

thinktank

Mitglied
Danke für die Antwort. Die habe ich absichtlich nicht gleich, weil da steht:
"It is strongly recommended (though not required) that natural orderings be consistent with equals."

Und es ist für mich im Moment einfacher sie leicht abweichend zu haben.
Aber dann scheint die Doku da falsch zu sein, oder es gibt einen Grund, warum er auf den compareTo statt auf den equals zurück greift.
Ich seh' schon, dass ich das einfach richtig ausprogrammieren muss und die gleich reagierend machen muss.
 
M

maki

Gast
Für Set/TreeSet gilt aber:
Note that the ordering maintained by a set (whether or not an explicit comparator is provided) must be consistent with equals if it is to correctly implement the Set interface.
TreeSet (Java Platform SE 6)

Damit ist das nicht empfohlen, sondern eine Vorraussetzung für (Tree-)Set.
D.h. die Doku ist schon richtig aber deine Interpretation und Implementierung davon ist im Moment falsch ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Collections Fragen zu gleichen Elementen in TreeSet Allgemeine Java-Themen 35
B TreeSet-Ausgeben Allgemeine Java-Themen 8
B Collections TreeSet/TreeMap, doppelte Einträge zulassen ? Allgemeine Java-Themen 11
K Collections TreeSet beinhaltet Objektleichen Allgemeine Java-Themen 26
S TreeSet - Comparator ändern -> resort? Allgemeine Java-Themen 8
M Vergleich von TreeSet<HashSet>^2 Allgemeine Java-Themen 8
H Problem beim Sortieren einer HashMap mit TreeSet Allgemeine Java-Themen 4
A Effizienzfrage bei TreeSet / XML-Verarbeitung Allgemeine Java-Themen 8
C TreeSet mit Objekten befüllen Allgemeine Java-Themen 12
J TreeSet und Comparator will nicht so wie ich Allgemeine Java-Themen 2
J unsortiertes Treeset Allgemeine Java-Themen 2
J TreeSet neues TreeSet aufbauen Allgemeine Java-Themen 8
S Verhalten der Klasse TreeSet... Allgemeine Java-Themen 4
S TreeSet benötigt zu viel Speicher Allgemeine Java-Themen 5
André Uhres BigDecimal in HashSet eingefügt, aber nicht in TreeSet Allgemeine Java-Themen 2
M TreeSet exception bei add Allgemeine Java-Themen 17
E Statt HashSet die TreeSet verwenden Allgemeine Java-Themen 4
G TreeSet ändert sich bei Änderungen nicht! Allgemeine Java-Themen 15
M Fehler in TreeSet.remove() Allgemeine Java-Themen 6
B String Array aus TreeSet Allgemeine Java-Themen 6
T TreeSet neu sortieren Allgemeine Java-Themen 4
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
G Override String.contains Allgemeine Java-Themen 2
H ArrayList.contains() Allgemeine Java-Themen 2
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
B Arraylist.contains(Klasse) möglich? Allgemeine Java-Themen 19
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
1 String mit contains vergleichen (ignore case) Allgemeine Java-Themen 2
T Set.contains() auch false wenn value == null? Allgemeine Java-Themen 4
J Array[][] contains Array[][] ? Allgemeine Java-Themen 4
G drawPolygon() vs. contains() -> komisch! Allgemeine Java-Themen 14
I Properties.contains("Hell*orld"); Allgemeine Java-Themen 14
N contains(.) liefert nicht erwartetes Ergebnis Allgemeine Java-Themen 3
B String.contains() --- Java1.3 Allgemeine Java-Themen 2
K Java ruft Methoden nicht der Reihe nach auf Allgemeine Java-Themen 14
H Shortcut ruft zwei Menu-punkte auf Allgemeine Java-Themen 5
M Welches Objekt ruft die Methode auf? Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben