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 Vector
klasse er en implementering af den List
grænseflade, der giver os mulighed for at skabe resizable-arrays svarende til ArrayList klassen.
Java Vector vs. ArrayList
I Java både ArrayList
og Vector
implementerer List
grænsefladen og giver de samme funktioner. Der er dog nogle forskelle mellem dem.
Den Vector
klasse synkroniserer hver enkelt operation. Dette betyder, at når vi vil udføre nogle operationer på vektorer, anvender Vector
klassen 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, ConcurrentModificationException
genereres 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 ArrayList
i stedet for, Vector
fordi 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 Vector
klasse giver også resizable-array-implementeringer af List
grænsefladen (svarende til ArrayList
klasse). Nogle af Vector
metoderne 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 |