I denna handledning lär vi oss om Vector-klassen och hur man använder den. Vi kommer också att lära oss hur det skiljer sig från ArrayList-klassen och varför vi istället ska använda arraylistor.
Den Vector
klassen är en implementation av List
gränssnitt som tillåter oss att skapa resizable-arrayer liknar Arraylist klass.
Java Vector vs. ArrayList
I Java, både ArrayList
och Vector
implementerar List
gränssnitt och ger samma funktioner. Det finns dock vissa skillnader mellan dem.
Den Vector
klass synkroniserar varje enskild transaktion. Det betyder att när vi vill utföra vissa operationer på vektorer Vector
använder klassen automatiskt ett lås på den operationen.
Det beror på att när en tråd har åtkomst till en vektor, och samtidigt en annan tråd försöker komma åt den, ConcurrentModificationException
genereras ett undantag som kallas . Följaktligen gör denna kontinuerliga användning av lås för varje operation vektorer mindre effektiva.
I array-listor synkroniseras dock inte metoder. Istället använder den Collections.synchronizedList()
metoden som synkroniserar listan som helhet.
Obs! Det rekommenderas att använda ArrayList
istället för Vector
eftersom vektorer inte är trådsäkra och mindre effektiva.
Skapa en vektor
Så här kan vi skapa vektorer i Java.
Vector vector = new Vector();
Här anger typ typen av en länkad lista. Till exempel,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Metoder för vektor
Den Vector
klass tillhandahåller också de resizable-array implementeringar av List
gränssnitt (liknande den ArrayList
klass). Några av Vector
metoderna är:
Lägg till element i Vector
add(element)
- lägger till ett element i vektoreradd(index, element)
- lägger till ett element till den angivna positionenaddAll(vector)
- lägger till alla element i en vektor till en annan vektor
Till exempel,
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); ) )
Produktion
Vektor: (Hund, häst, katt) Ny vektor: (krokodil, hund, häst, katt)
Åtkomst till vektorelement
get(index)
- returnerar ett element som anges av indexetiterator()
- returnerar ett iteratorobjekt för sekventiell åtkomst till vektorelement
Till exempel,
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(", "); ) ) )
Produktion
Element vid index 2: kattvektor: hund, häst, katt,
Ta bort vektorelement
remove(index)
- tar bort ett element från angiven positionremoveAll()
- tar bort alla elementclear()
- tar bort alla element. Det är mer effektivt änremoveAll()
Till exempel,
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); ) )
Produktion
Ursprunglig vektor: (Hund, häst, katt) Borttaget element: Häst Ny vektor: (Hund, katt) Vektor efter klar (): ()
Andra vektormetoder
Metoder | Beskrivningar |
---|---|
set() | ändrar ett element i vektorn |
size() | returnerar storleken på vektorn |
toArray() | konverterar vektorn till en matris |
toString() | konverterar vektorn till en sträng |
contains() | söker i vektorn efter angivet element och returnerar ett booleskt resultat |