I recently had a discussion with a collegue why the List interface in Java doesn\'t have a head() and tail() method.
In order to implement
If you want to process a list recursively, which is often what head/tail are used for in functional programming, you can use an Iterator.
Integer min(Iterator iterator) {
if ( !iterator.hasNext() ) return null;
Integer head = iterator.next();
Integer minTail = min(iterator);
return minTail == null ? head : Math.min(head, minTail);
}