Различие в поведении во время выполнения состоит в том, что второе задает значение для capacityIncrement
:
CapacityIncrement : величина, на которую увеличивается емкость при переполнении вектора
Разница во время компиляции заключается в том, что второй использует необработанный тип.Это означает, что компилятор выдаст предупреждение об этом.
Даже если вы хотите поместить / получить Object
в этом векторе (что в целом является плохой практикой), объявление универсального типа, Vector<Object>
, является более понятным ипоказать свое намерение.
Так вот:
Vector<Object> v = new Vector<>(SIZE);
или что:
Vector<Object> v = new Vector<>(SIZE, GROWABLESIZE);
лучше.
Но обычно вы не хотите использовать Vector
, который является потокобезопасным унаследованным классом, который по-прежнему присутствует в основном из соображений ретро-совместимости.
Статический метод Collections.synchronizedList()
обычно лучше / болеегибкий способ сделать поток экземпляра List
безопасным.