В този урок ще научим за класа 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() | търси вектора за посочен елемент и връща булев резултат |