Vector
– пересинхронизированный и устаревший вариант ArrayList
, который лучше заменить Collections.synchronizedList()
.ArrayList
хранит данные в массиве, LinkedList
в двусвязном списке. Из этого вытекает разница в эффективности разных операций: ArrayList
лучше справляется с изменениями в середине и ростом в пределах capacity, LinkedList
– на краях. В целом обычно ArrayList лучше.Стоит добавить, что для работы на краях лучше использовать реализации специально для этого спроектированного интерфейса Deque: например реализующую кольцевой буфер
ArrayDeque
.