В этом руководстве мы узнаем о классе 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() | ищет вектор для указанного элемента и возвращает логический результат |