Вектор Java (с примерами)

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

VectorКласс является реализацией Listинтерфейса , который позволяет нам создавать изменяемый размер-массивы , аналогичный класс ArrayList.

Java Vector против ArrayList

В Java оба ArrayListи Vectorреализуют Listинтерфейс и предоставляют те же функции. Однако между ними есть некоторые различия.

VectorКласс синхронизирует каждую отдельную операцию. Это означает, что всякий раз, когда мы хотим выполнить какую-либо операцию с векторами, Vectorкласс автоматически применяет блокировку к этой операции.

Это потому, что когда один поток обращается к вектору, и в то же время другой поток пытается получить к нему доступ, создается вызываемое исключение ConcurrentModificationException. Следовательно, это постоянное использование блокировки для каждой операции делает векторы менее эффективными.

Однако в списках массивов методы не синхронизируются. Вместо этого он использует Collections.synchronizedList()метод, который синхронизирует список в целом.

Примечание. Рекомендуется использовать ArrayListвместо, Vectorпоскольку векторы не являются потокобезопасными и менее эффективными.

Создание вектора

Вот как мы можем создавать векторы в Java.

 Vector vector = new Vector(); 

Здесь Type указывает тип связанного списка. Например,

 // create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector(); 

Методы вектора

VectorКласс также обеспечивает реализацию изменяемого-массив Listинтерфейса ( по аналогии с ArrayListклассом). Некоторые из Vectorметодов:

Добавить элементы в вектор

  • add(element) - добавляет элемент к векторам
  • add(index, element) - добавляет элемент в указанную позицию
  • addAll(vector) - добавляет все элементы вектора к другому вектору

Например,

 import java.util.Vector; class Main ( public static void main(String() args) ( Vector mammals= new Vector(); // Using the add() method mammals.add("Dog"); mammals.add("Horse"); // Using index number mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // Using addAll() Vector animals = new Vector(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); ) ) 

Вывод

 Вектор: (Собака, Лошадь, Кошка) Новый вектор: (Крокодил, Собака, Лошадь, Кошка) 

Доступ к элементам вектора

  • get(index) - возвращает элемент, указанный индексом
  • iterator() - возвращает объект-итератор для последовательного доступа к элементам вектора

Например,

 import java.util.Iterator; import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); // Using get() String element = animals.get(2); System.out.println("Element at index 2: " + element); // Using iterator() Iterator iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) ) 

Вывод

 Элемент с индексом 2: Кошка. Вектор: Собака, Лошадь, Кошка, 

Удалить векторные элементы

  • remove(index) - удаляет элемент из указанной позиции
  • removeAll() - удаляет все элементы
  • clear()- удаляет все элементы. Это более эффективно, чемremoveAll()

Например,

 import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Initial Vector: " + animals); // Using remove() String element = animals.remove(1); System.out.println("Removed Element: " + element); System.out.println("New Vector: " + animals); // Using clear() animals.clear(); System.out.println("Vector after clear(): " + animals); ) ) 

Вывод

 Исходный вектор: (Собака, Лошадь, Кошка) Удаленный элемент: Лошадь Новый вектор: (Собака, Кошка) Вектор после очистки (): () 

Другие векторные методы

Методы Описания
set() изменяет элемент вектора
size() возвращает размер вектора
toArray() преобразует вектор в массив
toString() преобразует вектор в строку
contains() ищет вектор для указанного элемента и возвращает логический результат

Интересные статьи...