Java Vector (ar piemēriem)

Šajā apmācībā mēs uzzināsim par Vector klasi un kā to izmantot. Mēs arī uzzināsim, kā tas atšķiras no klases ArrayList, un kāpēc mums tā vietā vajadzētu izmantot masīvu sarakstus.

VectorKlase ir īstenot Listinterfeiss, kas ļauj mums izveidot resizable masīvi līdzīgas ArrayList klasē.

Java Vector pret ArrayList

Java, gan ArrayListun Vectorīsteno Listsaskarnes un nodrošina tādas pašas funkcijas. Tomēr starp tām pastāv dažas atšķirības.

VectorKlase sinhronizē katru atsevišķo operāciju. Tas nozīmē, ka ikreiz, kad mēs vēlamies veikt kādu darbību ar vektoriem, Vectorklase šai operācijai automātiski pielieto bloķēšanu.

Tas ir tāpēc, ka tad, kad viens pavediens piekļūst vektoram un tajā pašā laikā cits pavediens mēģina tam piekļūt, ConcurrentModificationExceptiontiek ģenerēts izņēmums, ko sauc . Tādējādi šī nepārtrauktā bloķēšanas izmantošana katrai darbībai vektorus padara mazāk efektīvus.

Tomēr masīvu sarakstos metodes netiek sinhronizētas. Tā vietā tā izmanto Collections.synchronizedList()metodi, kas sinhronizē sarakstu kopumā.

Piezīme: Ieteicams lietot ArrayListvietā Vector, jo vektori nav threadsafe un ir mazāk efektīvi.

Vektora izveide

Lūk, kā mēs varam izveidot vektorus Java.

 Vector vector = new Vector(); 

Šeit tips norāda saistītā saraksta veidu. Piemēram,

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

Vektora metodes

VectorKlase nodrošina arī ar maināmu-masīva realizācijas no Listsaskarnes (līdzīgi kā ArrayListklasē). Dažas no Vectormetodēm ir:

Pievienojiet elementus vektoram

  • add(element) - pievieno elementu vektoriem
  • add(index, element) - pievieno elementu norādītajai pozīcijai
  • addAll(vector) - pievieno visus vektora elementus citam vektoram

Piemēram,

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

Rezultāts

 Vektors: (suns, zirgs, kaķis) jauns vektors: (krokodils, suns, zirgs, kaķis) 

Piekļūstiet vektora elementiem

  • get(index) - atgriež indeksā norādīto elementu
  • iterator() - atgriež iteratora objektu, lai secīgi piekļūtu vektora elementiem

Piemēram,

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

Rezultāts

 2. rādītāja elements: kaķu vektors: suns, zirgs, kaķis, 

Noņemt vektoru elementus

  • remove(index) - noņem elementu no norādītās pozīcijas
  • removeAll() - noņem visus elementus
  • clear()- noņem visus elementus. Tas ir efektīvāks nekāremoveAll()

Piemēram,

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

Rezultāts

 Sākotnējais vektors: (suns, zirgs, kaķis) noņemtais elements: zirgs jauns vektors: (suns, kaķis) vektors pēc notīrīšanas (): () 

Citas vektoru metodes

Metodes Apraksti
set() maina vektora elementu
size() atgriež vektora lielumu
toArray() pārveido vektoru masīvā
toString() pārveido vektoru par virkni
contains() meklē vektorā norādīto elementu un atgriež Būla rezultātu

Interesanti raksti...