What is the difference between `ArrayList` and `LinkedList` in Java?
`ArrayList` is more efficient for random access, while `LinkedList` is better for adding/removing elements from the middle of the list.
You're close! `LinkedList` does perform better for insertion and removal in the middle, but `ArrayList` can also be slow when resizing the array.
Can you explain the internal working of `ArrayList` when it needs to grow in size?