Convert to array options

ArrayList has three conversion methods now

toArray() toArray(T[] a) copyToArray()

What are the differences between these methods?

copyToArray() is convenient, the other two are not, and are only kept for compatibility