ArrayList is array based, internally uses array
LinkedList consists of nodes/values that are related to each other
ArrayList and LinkedList both keep ordering
ArrayList and LinkedList both allow duplicates
Compare Types of Lists in Java
ArrayList
(extends AbstractList implements RandomAccess, Cloneable, Serializable)
- is dynamic array
- accepts duplicate elements
- is non-synchronized
LinkedList
(extends AbstractSequentialList implements Deque, Cloneable, Serializable)
- is linked list data scructure
- accepts duplicate elements
- is non-synchronized
Vector
(extends AbstractList implements RandomAccess, Cloneable, Serializable)
- growable or dynamic array of objects
- similar to array, but can grow and shrink
- synchronized
- if getting/setting more, use arrayList
--dynamic array perofrms better for get/set
- if adding/removing more, use linkedList
--doubly linked list better for adding removing
- if multi-thread, use Vector over arrayList
--vector's synchronized nature better for multi-thread
- if not multi-threaded, arraylist better
--because it's not synchronized, thus faster