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.
Are you okay? You look a little big. Maybe this tiny ad will help: