Vektor Java (s príkladmi)

V tomto výučbe sa dozvieme o triede Vector a o tom, ako ju používať. Dozvieme sa tiež, ako sa líši od triedy ArrayList a prečo by sme mali namiesto toho používať zoznamy polí.

VectorTrieda je implementácia Listrozhrania, ktoré nám umožňuje vytvoriť meniť veľkosť-pole podobné triedy ArrayList.

Java Vector vs. ArrayList

V Jave, ako ArrayLista Vectorimplementuje Listrozhranie a poskytuje rovnaké funkcie. Existujú však určité rozdiely medzi nimi.

VectorTrieda synchronizuje jednotlivé operácie. To znamená, že kedykoľvek chceme vykonať nejakú operáciu na vektoroch, Vectortrieda na túto operáciu automaticky použije zámok.

Je to tak preto, lebo keď jedno vlákno pristupuje k vektoru a súčasne sa iné vlákno pokúša o prístup k nemu, ConcurrentModificationExceptionvygeneruje sa volaná výnimka . Toto nepretržité používanie zámku pre každú operáciu preto robí vektory menej efektívne.

V zoznamoch polí však nie sú metódy synchronizované. Namiesto toho používa Collections.synchronizedList()metódu, ktorá synchronizuje zoznam ako celok.

Poznámka: Odporúča sa používať ArrayListnamiesto toho, Vectorpretože vektory nie sú bezpečné pre vlákna a sú menej účinné.

Vytvorenie vektora

Takto môžeme vytvárať vektory v Jave.

 Vector vector = new Vector(); 

Typ tu označuje typ prepojeného zoznamu. Napríklad,

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

Metódy vektora

VectorTrieda tiež poskytuje implementácia meniť veľkosť-pole na Listrozhraní (podobné ArrayListskupiny). Niektoré z týchto Vectormetód sú:

Pridajte prvky do vektora

  • add(element) - pridá prvok do vektorov
  • add(index, element) - pridá prvok na zadanú pozíciu
  • addAll(vector) - pridá všetky prvky vektora do iného vektora

Napríklad,

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

Výkon

 Vektor: (pes, kôň, mačka) Nový vektor: (krokodíl, pes, kôň, mačka) 

Prístup k vektorovým prvkom

  • get(index) - vráti prvok určený indexom
  • iterator() - vráti iteračný objekt k sekvenčnému prístupu k vektorovým prvkom

Napríklad,

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

Výkon

 Prvok v indexe 2: Vektor mačky: pes, kôň, mačka, 

Odstráňte vektorové prvky

  • remove(index) - odstráni prvok z určenej polohy
  • removeAll() - odstráni všetky prvky
  • clear()- odstráni všetky prvky. Je to efektívnejšie akoremoveAll()

Napríklad,

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

Výkon

 Počiatočný vektor: (pes, kôň, mačka) Odstránený prvok: kôň Nový vektor: (pes, mačka) Vektor po vyčistení (): () 

Ostatné vektorové metódy

Metódy Popisy
set() zmení prvok vektora
size() vráti veľkosť vektora
toArray() prevádza vektor na pole
toString() prevádza vektor na String
contains() vyhľadá vektor pre zadaný prvok a vráti boolovský výsledok

Zaujímavé články...