## Interface Comparable ```java interface Comparable { int compareTo(T other); } ``` `compareTo()` um Objekte miteinander zu vergleichen - `<0`, wenn anderes Objekt "größer" - `=0`, wenn gleich - `>0`, wenn anderes Objekt "kleiner" ist --- ## Interface Comparator ```java interface Comparator { int compare(T object1, T object2); } ``` `compare()` vergleicht zwei Objekte ```java class SortByHouseNumber implements Comparator { public int compare(Adress a1, Adress a2){ return a1.getHouseNumber - a2.getHouseNumber; } } ``` --- ## Collections.sort Anwendung mit Collections.sort: 1. über die natürliche Ordnung (compareTo()) `Collections.sort( List list )` 2. mit Hilfe einer Comparators (compare()) `Collections.sort( List list, Comparator c )` --- ## Aufgaben 1) Implementiere einen `Comparator SortByHealth`, welcher die Tiere nach aufsteigender `health` sortiert. 2) Implementiere einen `Comparator SortByAge`, welche die Tiere nach absteigendem Alter sortiert. 3) Der Shepherd soll eine Methode `getSortedByAscendingHealth()` und `getSortedByDescendingAge()` anbieten, welcher die Liste umsortiert und das Ergebnis zurückgibt.