Java вектор
Вектор Java
В этом уроке мы узнаем о классе Vector и о том, как его использовать. Мы также узнаем, чем он отличается от класса ArrayList и почему вместо него следует использовать списки массивов.
Vector
класс является реализацией List
интерфейс, который позволяет нам создавать массивы с изменяемым размером, подобные классу ArrayList.
Java Vector и ArrayList
В Java оба ArrayList
и Vector
реализует List
интерфейс и предоставляет те же функции. Однако между ними существуют некоторые различия.
Vector
класс синхронизирует каждую отдельную операцию. Это означает, что всякий раз, когда мы хотим выполнить какую-либо операцию с векторами, Vector
класс автоматически применяет блокировку к этой операции.
Это связано с тем, что когда один поток обращается к вектору, и в то же время другой поток пытается получить к нему доступ, возникает исключение с именем ConcurrentModificationException
. генерируется. Следовательно, это постоянное использование блокировки для каждой операции делает векторы менее эффективными.
Однако в списках массивов методы не синхронизируются. Вместо этого он использует Collections.synchronizedList()
метод, который синхронизирует список в целом.
Примечание. Рекомендуется использовать ArrayList
вместо Vector
потому что векторы не являются потокобезопасными и менее эффективны.
Создание вектора
Вот как мы можем создавать векторы в Java.
Vector<Type> vector = new Vector<>();
Здесь Введите указывает тип связанного списка. Например,
// create Integer type linked list
Vector<Integer> vector= new Vector<>();
// create String type linked list
Vector<String> vector= new Vector<>();
<час> Методы вектора
Vector
class также предоставляет реализации изменяемого размера массива List
интерфейс (аналогичный ArrayList
учебный класс). Некоторые из Vector
методы:
Добавить элементы в вектор
add(element)
- добавляет элемент в векторыadd(index, element)
- добавляет элемент в указанную позициюaddAll(vector)
- добавляет все элементы вектора в другой вектор
Например,
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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<String> animals = new Vector<>();
animals.add("Crocodile");
animals.addAll(mammals);
System.out.println("New Vector: " + animals);
}
}
Вывод
Vector: [Dog, Horse, Cat] New Vector: [Crocodile, Dog, Horse, Cat]<час>
Доступ к элементам вектора
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("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<String> iterate = animals.iterator();
System.out.print("Vector: ");
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
Вывод
Element at index 2: Cat Vector: Dog, Horse, Cat,<час>
Удалить элементы вектора
remove(index)
- удаляет элемент из указанной позицииremoveAll()
- удаляет все элементыclear()
- удаляет все элементы. Это более эффективно, чемremoveAll()
Например,
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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);
}
}
Вывод
Initial Vector: [Dog, Horse, Cat] Removed Element: Horse New Vector: [Dog, Cat] Vector after clear(): []<час>
Другие векторные методы
Методы | Описания |
---|---|
set() | меняет элемент вектора |
size() | возвращает размер вектора |
toArray() | преобразует вектор в массив |
toString() | преобразует вектор в строку |
contains() | ищет в векторе указанный элемент и возвращает логический результат |
java