Java Vector (z przykładami)

W tym samouczku dowiemy się o klasie Vector i jak z niej korzystać. Dowiemy się również, czym różni się ona od klasy ArrayList i dlaczego zamiast tego powinniśmy używać list tablicowych.

VectorKlasa jest implementacja Listinterfejsu, który pozwala nam tworzyć skalowalne-tablice podobne do klasy ArrayList.

Wektor Java a ArrayList

W Javie zarówno ArrayListi Vectorimplementuje Listinterfejs, jak i zapewnia te same funkcje. Są jednak między nimi pewne różnice.

VectorKlasa synchronizuje każdą indywidualną operację. Oznacza to, że ilekroć chcemy wykonać jakąś operację na wektorach, Vectorklasa automatycznie nakłada blokadę na tę operację.

Dzieje się tak, ponieważ gdy jeden wątek uzyskuje dostęp do wektora, a jednocześnie inny wątek próbuje uzyskać do niego dostęp, ConcurrentModificationExceptiongenerowany jest wyjątek . Stąd to ciągłe używanie blokady dla każdej operacji sprawia, że ​​wektory są mniej wydajne.

Jednak na listach tablic metody nie są synchronizowane. Zamiast tego używa Collections.synchronizedList()metody, która synchronizuje listę jako całość.

Uwaga: zaleca się używanie ArrayListzamiast, Vectorponieważ wektory nie są wątkowo bezpieczne i są mniej wydajne.

Tworzenie wektora

Oto jak możemy tworzyć wektory w Javie.

 Vector vector = new Vector(); 

Tutaj Type wskazuje typ połączonej listy. Na przykład,

 // create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector(); 

Metody Vector

VectorKlasy również implementacje skalowalny-tablicę Listinterfejsu (podobne do ArrayListklasy). Oto niektóre z Vectormetod:

Dodaj elementy do wektora

  • add(element) - dodaje element do wektorów
  • add(index, element) - dodaje element do określonej pozycji
  • addAll(vector) - dodaje wszystkie elementy wektora do innego wektora

Na przykład,

 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); ) ) 

Wynik

 Wektor: (Pies, Koń, Kot) Nowy wektor: (Krokodyl, Pies, Koń, Kot) 

Dostęp do elementów wektora

  • get(index) - zwraca element określony przez indeks
  • iterator() - zwraca obiekt iteratora, aby uzyskać sekwencyjny dostęp do elementów wektora

Na przykład,

 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(", "); ) ) ) 

Wynik

 Element w indeksie 2: Kot Wektor: Pies, Koń, Kot, 

Usuń elementy wektorowe

  • remove(index) - usuwa element z określonej pozycji
  • removeAll() - usuwa wszystkie elementy
  • clear()- usuwa wszystkie elementy. Jest bardziej wydajny niżremoveAll()

Na przykład,

 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); ) ) 

Wynik

 Początkowy wektor: (Pies, Koń, Kot) Usunięty element: Koń Nowy wektor: (Pies, Kot) Wektor po wyczyszczeniu (): () 

Inne metody wektorowe

Metody Opisy
set() zmienia element wektora
size() zwraca rozmiar wektora
toArray() konwertuje wektor na tablicę
toString() konwertuje wektor na String
contains() przeszukuje wektor pod kątem określonego elementu i zwraca wynik logiczny

Interesujące artykuły...