Arrays are fast and ArrayList is like a fancy array with bound check and auto grows. Only the grow part can be problematic if it has to grow very often. But that can be avoided by providing an appropriate initial size or reusing the ArrayList by using clear() instead of creating a new one.
Both is used by OP in this project.
Especially since the code copies lists quite often I would expect LinkedList to perform way worse.
SillyUsername|9 months ago