0 Daumen
285 Aufrufe

Erstellen Sie eine Methode

public static <T extends Comparable<T>> T max ( Iterable<T> allObjects )

Die Methode max gibt den größten Inhalt aus allObjects zurück. Falls allObjects keinen Inhalt hat, soll null zurückgegeben werden.


Da ich leider noch am Anfang vom Programmieren stehe, weiß ich nicht so recht, wie ich vorgehen soll. Wie würde ein möglicher Code aussehen?

Avatar von

1 Antwort

+1 Daumen

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.

Avatar von 5,7 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community