English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы изучим класс Vector и как им пользоваться. Мы также изучим его различия с классом ArrayList и почему我们应该 перейти на список.
Класс Vector является реализацией интерфейса List и позволяет нам создавать аналогичныеArrayListкласс подвижного массива.
В Java ArrayList и Vector реализуют интерфейс List и предоставляют одинаковые функции. Однако, между ними есть некоторые различия.
Класс Vector синхронизирует каждую отдельную операцию. Это означает, что каждый раз, когда мы хотим выполнить某些 операции с вектором, класс Vector автоматически применяет lock к этой операции.
Это потому, что когда один поток доступа к вектору, в то время как другой поток пытается доступ к нему, возникает исключение ConcurrentModificationException. Поэтому использование locks для каждой операции снижает эффективность вектора.
Но в ArrayList методы не синхронизированы. Напротив, он использует метод Collections.synchronizedList() для синхронизации всего списка.
Примечание:Поскольку вектор (vector) не является线程 безопасным и имеет низкую эффективность, рекомендуется использовать ArrayList вместо Vector.
Вот как мы создаем вектор (vector) на Java.
Vector<Type> vector = new Vector<>();
Здесь, Type represents the data type stored in the vector. Например,
// создать вектор целочисленного типа Vector<Integer> vector = new Vector<>(); // создать вектор строкового типа Vector<String> vector = new Vector<>();
Класс Vector предоставляет реализацию resizable array List接口 (аналогично классу ArrayList). Некоторые методы Vector:
add(element) - добавить элемент в вектор (vector)
add(index, element) - добавить элемент в указанное положение
addAll(vector) - добавить все элементы вектора (vector) в другой вектор
Например:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> mammals = new Vector<>(); // использовать метод add() mammals.add("Dog"); mammals.add("Horse"); // использовать индекс mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // использовать метод addAll() Vector<String> 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<String> animals = new Vector<>(); animals.add("Собака"); animals.add("Лошадь"); animals.add("Кот"); // Использование метода get() String element = animals.get(2); System.out.println("Элемент по индексу 2: " + element); // Использование iterator() Iterator<String> iterate = animals.iterator(); System.out.print("Вектор: "); 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<String> animals = new Vector<>(); animals.add("Собака"); animals.add("Лошадь"); animals.add("Кот"); System.out.println("Исходный вектор: " + animals); // Использование метода remove() String element = animals.remove(1); System.out.println("Удален элемент: " + element); System.out.println("New Vector: " + animals); // Использование метода clear() animals.clear(); System.out.println("Vector after clear(): " + animals); } }
Результат вывода
Начальный вектор: [Dog, Horse, Cat] Удаленный элемент: Horse New Vector: [Dog, Cat] Vector after clear(): []
Метод | Описание содержимого |
---|---|
set() | Изменение элементов вектора |
size() | Возврат размера вектора |
toArray() | Преобразование вектора в массив |
toString() | Преобразование вектора в строку |
contains() | Поиск указанного элемента в векторе и возвращение логического значения |