ArrayList internally uses dynamic array to store the elements.
LinkedList internally uses doubly linked list to store the elements.
 Manipulation with ArrayList is slow.
Manipulation with LinkedList is faster.
 ArrayList class can act as a list only because it implements List only.
LinkedList class can act as a list and queue both because it implements List and Deque interfaces.
ArrayList is better for storing and accessing data.
LinkedList is better for manipulating data.