Ich hatte kürzlich eine Diskussion mit einem Kollegen, warum die List-Schnittstelle in Java keine head()
y tail()
Methode.
Um eine solche Funktion zu implementieren, müsste man einen Wrapper schreiben, der etwa so aussieht:
public E head() {
if (underlyingList == null || underlyingList.isEmpty())
return null;
return underlyingList.get(0);
}
public E tail() {
if (underlyingList == null || underlyingList.isEmpty())
return null;
return underlyingList.get(underlyingList.size()-1);
}
Ich kenne nicht alle List-Implementierungen, aber ich nehme an, dass es zumindest bei LinkedList und ArrayList ziemlich trivial sein sollte, die das letzte und erste Element ermitteln (konstante Zeit).
Die Frage ist also:
Gibt es einen bestimmten Grund, warum es keine gute Idee ist, eine Tail-Methode für jede List-Implementierung bereitzustellen?