Consider Below points before choosing List concrete implementations for your use case: ArrayList is a linear data structure and re-sizable/dynamic array Initial size can be given. and if not given the default size is 10 It is always good practice to give initial size and advised not to give very large number as size Good programmers prefer ArrayList to LinkedList if retrieval operations is done more frequently than insertion and deletions of elements. Better choose LinkedList if insertion and deletion operations are done frequently compared to retrieval operations. Lists are not sorted. if required use Collections.sort() to sort Collections.sort() uses optimized merge sort [tim sort] on ArrayList However legacy merge sort also can be used using a switch. But it is going to be deprecated in near future The major difference between ArrayList and LinkedList is RandomAccess behavior...