Š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.
Vector
Klase ir īstenot List
interfeiss, kas ļauj mums izveidot resizable masīvi līdzīgas ArrayList klasē.
Java Vector pret ArrayList
Java, gan ArrayList
un Vector
īsteno List
saskarnes un nodrošina tādas pašas funkcijas. Tomēr starp tām pastāv dažas atšķirības.
Vector
Klase sinhronizē katru atsevišķo operāciju. Tas nozīmē, ka ikreiz, kad mēs vēlamies veikt kādu darbību ar vektoriem, Vector
klase š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, ConcurrentModificationException
tiek ģ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 ArrayList
vietā 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
Vector
Klase nodrošina arī ar maināmu-masīva realizācijas no List
saskarnes (līdzīgi kā ArrayList
klasē). Dažas no Vector
metodēm ir:
Pievienojiet elementus vektoram
add(element)
- pievieno elementu vektoriemadd(index, element)
- pievieno elementu norādītajai pozīcijaiaddAll(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 elementuiterator()
- 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īcijasremoveAll()
- noņem visus elementusclear()
- 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 |