Programmieren_1/compare.md

1.4 KiB

Interface Comparable

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

interface Comparator<T> {
	int compare(T object1, T object2);
}

compare() vergleicht zwei Objekte

class SortByHouseNumber implements Comparator<Adress> {
	public int compare(Adress a1, Adress a2){
		return a.getHouseNumber - b.getHouseNumber;
	}
}

Collections.sort

Anwendung mit Collections.sort:

  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.