2016-03-22 9 views
-2

In Sammlung Rahmen Ich bin mir bewusst Vergleichbare einzelne Sortierreihenfolge während bietet Komparator mehrere Sortierreihenfolge Aber ich bin nicht in der Lage zu verstehen, wie eine Schnittstelle modifiziert stellt die Originaldaten, während der andere nicht?warum Vergleichbare die Originaldaten ändern, während Komparator nicht in Sammlung Rahmen hat

+1

Was macht denken Sie Vergleichbare die Originaldaten verändert? Beziehen Sie sich auf eine bestimmte Sortiermethode? – Eran

+0

es tut mir leid, aber können Sie bitte erklären, in einer richtigen Art und Weise ..? –

+1

keiner von ihnen ändert nichts (zumindest sollten sie nicht), nur sagen, welches Objekt "größer" ist und welches "kleiner" ist. Wenn ein 'Comparator' oder' compareTo() 'ein Objekt modifiziert, ist es fehlerhaft –

Antwort

2

Comparable nichts tut, dann ist es eine Schnittstelle. Es zwingt Ihr Objekt, die Methode 'compareTo' zu implementieren. Dadurch kann das Objekt mit einem anderen Objekt verglichen werden. https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html

Comparator nichts tut, dann ist es eine andere Schnittstelle. Es zwingt Ihr Objekt, die Methode 'compare' zu implementieren. Dadurch kann das Objekt zwei andere Objekte vergleichen. Beachten Sie den Unterschied: Vergleichen und vergleichen. https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html

Dieser Link erklärt die Schnittstellen von Object Ordering sehr, sehr gut. Mit Beispielen und allem. https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html