LinkedList is implemented as a double linked list. ArrayList is implemented based on an array.
Now imagine you have a loooong list, and want to remove the first element in the list. What does each version have to do internally to maintain the lists integrity (hint: the indices of each element have to be correct after removing the first element!). That should give you an idea when to use each variant.
Oh sure, it's a tiny ad, but under the right circumstances, it gets bigger.