Java Vector (з прикладами)

У цьому підручнику ми дізнаємося про клас 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() шукає вектор для вказаного елемента і повертає логічний результат

Цікаві статті...