Сравнение функциональности между векторами и массивами в Java - PullRequest
1 голос
/ 31 июля 2011

Я долго думал об этом.В чем разница между Vectors и Arrays?Я знаю, что они делают подобные вещи, если не точно.

String Array

String[] array = new String[4];

String Vector

Vector<String> vector = new Vector<String>(4);


Мне кажется, что это излишне, почемубыло бы arrays и vectors.Есть ли какие-либо преимущества или недостатки в использовании одного или другого?

Ответы [ 11 ]

6 голосов
/ 31 июля 2011

Векторы можно изменять. Массивы не.

4 голосов
/ 31 июля 2011

Разница в том, что Vector является расширением для программистов, а массив - встроенной функцией самого языка.

Вы можете редактировать поведение вектора (редактируя его исходный код), тогда как массив определяется компилятором.

И, очевидно, векторы могут иметь потенциальный размер (в зависимости от реализации). Массивы статичны и не могут быть изменены. Вы должны создать их заново и скопировать данные.

3 голосов
/ 31 июля 2011

Вектор синхронизирован. Массивы не являются (?).

2 голосов
/ 31 июля 2011

Мне кажется отчасти избыточным, почему бы существовали и массивы, и векторы

Для одного размер Vector можно изменить.Если вы объявите массив размером 10, у вас всегда останется 10, если вы не скопируете содержимое в другой массив большего размера.Методы Vector синхронизируются.

Vector s являются частью frameworks collection .Вектор представляет собой Список .Существуют и другие списки, ArrayList s, LinkedList s и т. Д. С конкретными функциями.Есть Набор с и Карта с.Все они содержат «списки» предметов, но каждый из них дает определенные преимущества в определенных ситуациях.

Возможно, вы захотите прочитать о коллекциях Java .

2 голосов
/ 31 июля 2011

Массив нельзя изменить, а Векторы можно.

Vector использует массивы для внутренних целей.Основным преимуществом вектора по сравнению с массивом является его автоматическое увеличение емкости.Массив сохраняет свой размер после создания, вектор не

1 голос
/ 31 июля 2011

1- Векторы могут быть изменены, массивы не

2- Векторы отвечают за распределение и освобождение памяти, а массивы - нет. Это делает векторы более безопасными для использования, чем массивы.

3- Векторы имеют хорошую производительность по своим реализованным функциям, чего вы не можете достичь с помощью собственного программирования с массивами.

4- Наконец, я думаю, что в большинстве случаев разумнее использовать векторы.

1 голос
/ 31 июля 2011

Векторы автоматически изменят размер для вас, чтобы разместить столько записей, сколько вы хотите в них.Массив имеет фиксированный размер и будет выдавать исключение OutOfBounds при попытке добавить больше, чем выделено.

Когда вы указываете размер для вектора, это просто исходный размер, с которого он начинается.Он будет автоматически расти / уменьшаться по мере необходимости.

0 голосов
/ 05 декабря 2014

Векторы помогают легко вставлять и удалять элементы, а массивы помогают легко сортировать и получать доступ к элементам.

Векторы могут содержать различные типы элементов Массивы только того типа, который определен при их формировании

Вы можете использовать список массивов, который немного похож на вектор и обеспечивает гораздо лучшие возможности

0 голосов
/ 04 сентября 2013

Я думаю, что вышеупомянутое предложение не является хорошим. Проверьте эту ссылку, чтобы получить краткое представление. Разница в ч / б массиве и векторе

0 голосов
/ 31 июля 2011

Типы массивов Java не нужны. Они на самом деле создают много проблем. Избегайте их, если можете.

Мы могли бы лучше заменить их стандартным классом Array<T>. Некоторые новые пост-Java языки используют этот подход.

(оповещение об истории) В старые времена в Java не было универсальных шаблонов, а не универсальный коллекционный класс мог бы использоваться (с большим количеством приведений). Тогда типы массивов были действительно дженериками бедняков, потому что они несут информацию о типах элементов. Вот почему многие методы возвращают массивы вместо List.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...