Selles õpetuses õpime tundma Vector klassi ja selle kasutamist. Samuti õpime, kuidas see erineb klassist ArrayList ja miks peaksime selle asemel massiivide loendeid kasutama.
Vector
Klassi on rakendamise List
liides, mis võimaldab meil luua muudetava suurusega-massiivid sarnane ArrayList klassi.
Java Vector vs ArrayList
Java-s mõlemad rakendavad ArrayList
ja Vector
rakendavad List
liidest ning pakuvad samu funktsioone. Nende vahel on siiski mõningaid erinevusi.
Vector
Klassi sünkroniseerib iga operatsiooni. See tähendab, et alati, kui tahame vektoritega mõnda toimingut sooritada, Vector
rakendab klass sellele toimingule automaatselt luku.
Selle põhjuseks on see, et kui üks lõime on ligipääs vektorile ja samal ajal proovib teine niit sellele juurde pääseda, luuakse nimega erand ConcurrentModificationException
. Seega muudab lukkude pidev kasutamine iga toimingu puhul vektorite vähem efektiivseks.
Massiiviloendites pole meetodeid siiski sünkroonitud. Selle asemel kasutab Collections.synchronizedList()
see loendi tervikuna sünkroonivat meetodit.
Märkus. Soovitatav on kasutada ArrayList
selle asemel, Vector
et vektorid pole niiditurvalised ja vähem efektiivsed.
Vektori loomine
Nii saame Java-s vektoreid luua.
Vector vector = new Vector();
Siin näitab tüüp lingitud loendi tüüpi. Näiteks,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Vektorite meetodid
Vector
Tasemega esitab ka muudetava suurusega-massiivi rakendustega List
pesaga (sarnaselt ArrayList
klass). Mõned Vector
meetodid on:
Lisage elemendid vektorisse
add(element)
- lisab vektoritele elemendiadd(index, element)
- lisab määratud kohale elemendiaddAll(vector)
- lisab vektori kõik elemendid teisele vektorile
Näiteks,
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äljund
Vektor: (koer, hobune, kass) uus vektor: (krokodill, koer, hobune, kass)
Juurdepääs vektorelementidele
get(index)
- tagastab indeksi määratud elemendiiterator()
- tagastab iteraatori objekti järjestikuse juurdepääsu vektorelementidele
Näiteks,
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äljund
2. indeksi element: kassi vektor: koer, hobune, kass,
Eemaldage vektorelemendid
remove(index)
- eemaldab elemendi määratud positsiooniltremoveAll()
- eemaldab kõik elemendidclear()
- eemaldab kõik elemendid. See on tõhusam kuiremoveAll()
Näiteks,
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äljund
Esialgne vektor: (koer, hobune, kass) eemaldatud element: hobune uus vektor: (koer, kass) vektor pärast selget (): ()
Teised vektormeetodid
Meetodid | Kirjeldused |
---|---|
set() | muudab vektori elementi |
size() | tagastab vektori suuruse |
toArray() | teisendab vektori massiiviks |
toString() | teisendab vektori stringiks |
contains() | otsib vektorist määratud elementi ja tagastab tõeväärtuse tulemuse |