Ebben az oktatóanyagban megismerhetjük a Vector osztályt és annak használatát. Megtudjuk azt is, hogy miben különbözik az ArrayList osztálytól, és miért kellene inkább tömblistákat használni.
Az Vector
osztály a List
felület megvalósítása, amely lehetővé teszi az ArrayList osztályhoz hasonló átméretezhető tömbök létrehozását.
Java Vector vs. ArrayList
A Java-ban mindkettő, ArrayList
és Vector
megvalósítja az List
interfészt, és ugyanazokat a funkciókat biztosítja. Vannak azonban különbségek közöttük.
Az Vector
osztály szinkronizálja az egyes műveleteket. Ez azt jelenti, hogy amikor valamilyen műveletet akarunk végrehajtani a vektorokon, az Vector
osztály automatikusan zárat alkalmaz erre a műveletre.
Ez azért van, mert amikor egy szál hozzáfér egy vektorhoz, és egy másik szál megpróbálja elérni azt, akkor egy úgynevezett kivétel ConcurrentModificationException
jön létre. Ennélfogva a zár folyamatos használata minden műveletnél kevésbé hatékonyabbá teszi a vektorokat.
A tömblistákban azonban a módszerek nincsenek szinkronizálva. Ehelyett azt a Collections.synchronizedList()
módszert használja, amely szinkronizálja a lista egészét.
Megjegyzés: Azért ajánlott használni ArrayList
, Vector
mert a vektorok nem biztonságosak és kevésbé hatékonyak.
Vektor létrehozása
Így hozhatunk létre vektorokat a Java-ban.
Vector vector = new Vector();
A Type itt a csatolt lista típusát jelöli. Például,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
A vektor módszerei
Az Vector
osztály biztosítja az List
interfész átméretezhető tömb megvalósítását is (hasonlóan az ArrayList
osztályhoz). Néhány Vector
módszer a következő:
Elemek hozzáadása a vektorhoz
add(element)
- hozzáad egy elemet a vektorokhozadd(index, element)
- hozzáad egy elemet a megadott pozícióhozaddAll(vector)
- a vektor összes elemét hozzáadja egy másik vektorhoz
Például,
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); ) )
Kimenet
Vektor: (kutya, ló, macska) új vektor: (krokodil, kutya, ló, macska)
Hozzáférés a vektor elemekhez
get(index)
- az index által megadott elemet adja visszaiterator()
- egy iterátor objektumot ad vissza a vektor elemek egymás utáni eléréséhez
Például,
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(", "); ) ) )
Kimenet
Elem a 2. indexen: Macska vektor: Kutya, Ló, Macska,
Távolítsa el a vektor elemeket
remove(index)
- eltávolít egy elemet a megadott pozícióbólremoveAll()
- eltávolítja az összes elemetclear()
- eltávolít minden elemet. Hatékonyabb, mintremoveAll()
Például,
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); ) )
Kimenet
Kezdő vektor: (Kutya, Ló, Macska) Eltávolított Elem: Ló Új Vektor: (Kutya, Macska) Vektor tiszta (): () után
Egyéb vektoros módszerek
Mód | Leírások |
---|---|
set() | megváltoztatja a vektor egy elemét |
size() | visszaadja a vektor méretét |
toArray() | a vektort tömbgé alakítja |
toString() | a vektort String-vé alakítja |
contains() | a vektorban megkeresi a megadott elemet, és logikai eredményt ad vissza |