Add Compare

This commit is contained in:
acp059 2020-05-12 14:56:15 +02:00
parent f9f23466ff
commit 3049e30d62
1 changed files with 57 additions and 0 deletions

View File

@ -5,3 +5,60 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides
header: Programmieren 1 **Tutorium**
footer: Henri Burau und Eva Meinen
-->
## Interface Comparable
```java
interface Comparable<T> {
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<T> {
int compare(T object1, T object2);
}
```
`compare()` vergleicht zwei Objekte
```java
class SortByHouseNumber implements Comparator<Adress> {
public int compare(Adress a1, Adress a2){
return a.getHouseNumber - b.getHouseNumber;
}
}
```
---
## Collections.sort
sortiert in aufsteigender Reihenfolge
1. über die natürliche Ordnung (compareTo())
`Collections.sort( List<T> list )`
2. mit Hilfe einer Comparators (compare())
`Collections.sort( List<T> list, Comparator<T> c )`
---
## Aufgaben
1) Implementiere einen `Comparator<Animal> SortByHealth`, welcher die Tiere nach aufsteigender `health` sortiert.
2) Implementiere einen `Comparator<Animal> 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.