allObjects ist vom Typ Iterable<T>. Deshalb kannst du mittels eines "enhanced for loop" alle Objekte abklappern, die in allObjects gespeichert sind.
Beispiel.
int count = 0;
for (T item: allObjects) {
// In der Variable item ist jetzt ein Objekt vom Typ T
// gespeichert. Für das Beispiel interessiert das aber
// nicht. Stattdessen:
count = count + 1;
}
In der Variablen count steht jetzt die Anzahl der Objekte, die in allObjects gespeichert sind.
Wegen T extends Comparable<T> weißt du, dass der Typ T das Interface Comparable<T> implementiert. Objekte vom Typ T können deshalb mit andenen Objekten vom Typ T verglichen werden.
Beispiel.
Iterator<T> it = allObjects.iterator();
T first = it.next();
T second = it.next();
int comparison = first.compareTo(second);
if (comparison < 0) {
// first ist kleiner als second
} else if (comparison == 0) {
// first ist genauso groß wie second
} else if (comparison > 0) {
// first ist größer als second
}
Formuliere einen Algorithmus in natürlicher Sprache um das Problem zu lösen. Verwende dann den for-loop und compareTo um den Algorithmus in Java zu übersetzen.