List vs ArrayList vs Vector

103
25 марта 2021, 16:10

Хочу узнать в чём глобальная разница между ArrayList и Vector. Я поискал и нашёл только информацию о том,что вектор синхронизирован ( с чем?). Я не очень понял. Также не понимаю чем принципиальная разница List от ArrayList. Буду рад вашим пояснениям

Answer 1

Vector в отличии от ArrayList потокобезопасен, то есть все интерфейсные методы помечены модификатором synchronized, получается что с ним может работать только один поток, поскольку на весь вектор один единственный монитор.Это сказывается на производительности, поэтому рекомендуется работать с ArrayList, которым можешь управлять в потоках как твоей душе угодно, в отличии от Vector.

List это интерфейс который и реализует Vector и ArrayList

Answer 2

List - это абстрактный тип данных. ArrayList - конкретная реализация этого типа на базе массива. Vector - это коллекция из древних времён Java, сохранённая в стандартной библиотеке для того, чтобы старый код мог работать на новых JVM.

Этот вопрос уже много раз задавался на Stackoverflow, и есть множество статей в Интернете на эту тему, но лучше всего это объясняется в любом учебнике.

Answer 3

Кроме синхронизации и степени древности Vector и ArrayList отличаются также размером увеличения подкапотного массива. В ArrayList массив увеличивается в 1,5 раза. В Vector в 2.

READ ALSO
Сделать фрагмент неактивным

Сделать фрагмент неактивным

[![Имеется 2 фрагмента: фрагмент меню, и собственно фрагмент "Предложение дня" При нажатии на кнопку BUTTON, фрагмент "предложение дня" становится...

128
Кодировка ResponseBody

Кодировка ResponseBody

@ResponseBody при формировании ответа использует StringHttpMessageConverter(исправьте, если не прав)И у него по-умолчанию кодировка ISO-8859-1

98
Какой запрос использовать в Rest Api?

Какой запрос использовать в Rest Api?

Всем приветХотелось бы узнать, можно ли при работе с Rest Api всегда использовать только POST заголовки? Или это моветон? Согласно CRUD, на каждую...

101
Передача русских символов в качестве аргументов java

Передача русских символов в качестве аргументов java

При вызове java-программы из командной строки с аргументами в качестве русских символов эти аргументы не распознаются программойЧто можно...

113