I denne vejledning lærer vi om Vector-klassen, og hvordan man bruger den. Vi lærer også, hvordan det adskiller sig fra ArrayList-klassen, og hvorfor vi i stedet skal bruge arraylister.
Den Vectorklasse er en implementering af den Listgrænseflade, der giver os mulighed for at skabe resizable-arrays svarende til ArrayList klassen.
Java Vector vs. ArrayList
I Java både ArrayListog Vectorimplementerer Listgrænsefladen og giver de samme funktioner. Der er dog nogle forskelle mellem dem.
Den Vectorklasse synkroniserer hver enkelt operation. Dette betyder, at når vi vil udføre nogle operationer på vektorer, anvender Vectorklassen automatisk en lås til denne operation.
Det er fordi, når en tråd har adgang til en vektor, og samtidig en anden tråd forsøger at få adgang til den, ConcurrentModificationExceptiongenereres en undtagelse kaldet . Derfor gør denne kontinuerlige brug af lås til hver operation vektorer mindre effektive.
I matrixlister synkroniseres metoder imidlertid ikke. I stedet bruger den Collections.synchronizedList()metoden, der synkroniserer listen som en helhed.
Bemærk: Det anbefales at bruge ArrayListi stedet for, Vectorfordi vektorer ikke er trådsikre og er mindre effektive.
Oprettelse af en vektor
Her er hvordan vi kan oprette vektorer i Java.
Vector vector = new Vector();
Her angiver Type typen af en linket liste. For eksempel,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Metoder til vektor
Den Vectorklasse giver også resizable-array-implementeringer af Listgrænsefladen (svarende til ArrayListklasse). Nogle af Vectormetoderne er:
Føj elementer til Vector
add(element)- tilføjer et element til vektoreradd(index, element)- tilføjer et element til den angivne positionaddAll(vector)- tilføjer alle elementerne i en vektor til en anden vektor
For eksempel,
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, hest, kat) Ny vektor: (krokodille, hund, hest, kat)
Adgang til vektorelementer
get(index)- returnerer et element, der er angivet af indeksetiterator()- returnerer et iteratorobjekt for sekventielt at få adgang til vektorelementer
For eksempel,
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 ved indeks 2: Katvektor: Hund, hest, kat,
Fjern vektorelementer
remove(index)- fjerner et element fra den angivne positionremoveAll()- fjerner alle elementerneclear()- fjerner alle elementer. Det er mere effektivt endremoveAll()
For eksempel,
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
Oprindelig vektor: (Hund, hest, kat) Fjernet element: hest Ny vektor: (hund, kat) Vektor efter klar (): ()
Andre vektormetoder
| Metoder | Beskrivelser |
|---|---|
set() | ændrer et element i vektoren |
size() | returnerer vektorens størrelse |
toArray() | konverterer vektoren til en matrix |
toString() | konverterer vektoren til en streng |
contains() | søger i vektoren efter det angivne element og returnerer et boolsk resultat |








