ArrayList is implemented with an array to store the elements of the list. LinkedList is implemented as a
doubly-linked list.
Which one
you should use depends on how you use the list. An ArrayList is faster when you need to lookup an element at a known index in the list, but slower when you insert elements in the list. A LinkedList is slower when looking up an element at a known index in the list, but faster when you insert elements in the list.