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