title: Why no tail() or head() method in List to get last or first element?
body: <p>I recently had a discussion with a collegue why the List interface in Java doesn't have a <code>head()</code> and <code>tail()</code> method.</p>
  
  <p>In order to implement such a functionality would have to write a wrapper that looked something like this:</p>
  
  <pre><code>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);
  }
  </code></pre>
  
  <p>I'm not aware of all List implementations but I assume that at least in LinkedList and ArrayList it should be pretty trivial to <strong>get the last and first element</strong> (constant time).</p>
  
  <p>So the question is:</p>
  
  <p>Is there a specific reason why it is not a good idea to provide a tail method to any List implementation?</p>