java.util.Vector был разработан в первой версии Java. java.util.ArrayList был введен только в версии 1.2, как часть Java Collections framework. В версии 2 платформы v1.2, вектор был переработан как инструмент для List и Vector.
Все методы Vector синхронезированны, а методы ArrayList не синхронизированны. Все новые реализации Java Collections framework не синхронизированны.
Вектор и ArrayList оба используют массив как структуру хранения данных. Они могут динамический менять размер. Разница лиш в том как они реализованны в нутри. Vector по умолчанию умножает свой размер на 2 как только достигнут предел. А вот ArrayList просто добавляет половину от своего размера.
Vector или ArrayList? Что лучше использовать в Java? В ообщем если нужен синхронизированный код, тогда лучше использовать Vector. Но в местах где требуется быстро обработать массив - то лучше использовать ArrayList, так как синзхронизация методов немного замедляет работу с кодом.
Если использовать Vector или ArrayList для больших обьемов данных, то лучше всего изначально задать размер массива, так он на порядок быстрее будет работать.
import java.util.*; class Main { public static void main(String[] args) { Vector vec = new Vector(); for (int i=0; i<10; i++) { vec.add(i); } ArrayList<Integer> lst = new ArrayList<>(); for (int i=0; i<10; i++) { lst.add(i); } print(vec.toString()); print(lst.toString()); // Java8 forEach lst.forEach(var -> System.out.println(var)); /* for (Object c: vec) { print(""+c); } for (Object c: lst) { print(""+c); } */ } private static void print(String str) { System.out.println(str); } }