title: Why does Arrays.asList() return its own ArrayList implementation
body: <p>I recently found out that there are actually 2 different <code>ArrayList</code> implementations in Java (better late than never I guess...).</p>
  
  <p>So I was wondering why does <code>Arrays.asList(T... a)</code> need to return a list which can not be resized ? If they needed an unmodifiable list why add the <code>set(int index, E element)</code> method then ?</p>
  
  <p>So my general question is why not return the <code>java.util.ArrayList</code> from the <code>Arrays.asList(T... a)</code> method ? </p>
  
  <p>Also what do you gain with the <code>java.util.Arrays.ArrayList</code> implementation ?</p>