I denne veiledningen vil vi lære om Vector-klassen og hvordan du bruker den. Vi vil også lære hvordan det er forskjellig fra ArrayList-klassen, og hvorfor vi i stedet bør bruke array-lister.
Den Vector
klassen er en implementering av List
grensesnitt som tillater oss å lage endre størrelsen-arrays ligner på Arraylist-klassen.
Java Vector vs. ArrayList
I Java, både ArrayList
og Vector
implementerer List
grensesnitt og gir samme funksjonalitet. Imidlertid er det noen forskjeller mellom dem.
Den Vector
klasse synkroniserer de aktuelle driftsforhold. Dette betyr at når vi vil utføre noen operasjoner på vektorer, bruker Vector
klassen automatisk en lås på den operasjonen.
Det er fordi når en tråd har tilgang til en vektor, og samtidig en annen tråd prøver å få tilgang til den, ConcurrentModificationException
genereres et unntak som heter . Derfor gjør denne kontinuerlige bruken av lås for hver operasjon vektorer mindre effektive.
Imidlertid synkroniseres ikke metodene i matrilister. I stedet bruker den Collections.synchronizedList()
metoden som synkroniserer listen som en helhet.
Merk: Det anbefales å bruke ArrayList
i stedet for Vector
fordi vektorer ikke er trådsikre og er mindre effektive.
Lage en vektor
Slik kan vi lage vektorer i Java.
Vector vector = new Vector();
Her angir Type typen av en koblet liste. For eksempel,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Metoder for vektor
Den Vector
klasse gir også skalerbar-array-implementeringer av List
grensesnittet (tilsvarende til den ArrayList
klasse). Noen av Vector
metodene er:
Legg til elementer i Vector
add(element)
- legger til et element i vektoreneadd(index, element)
- legger til et element i den angitte posisjonenaddAll(vector)
- legger til alle elementene i en vektor til en annen 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); ) )
Produksjon
Vektor: (Hund, hest, katt) Ny vektor: (krokodille, hund, hest, katt)
Få tilgang til vektorelementer
get(index)
- returnerer et element spesifisert av indekseniterator()
- returnerer et iteratorobjekt for sekvensielt å få tilgang 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(", "); ) ) )
Produksjon
Element ved indeks 2: Kattvektor: Hund, hest, katt,
Fjern Vector Elements
remove(index)
- fjerner et element fra spesifisert posisjonremoveAll()
- fjerner alle elementeneclear()
- fjerner alle elementene. Det er mer effektivt ennremoveAll()
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); ) )
Produksjon
Innledende vektor: (Hund, hest, katt) Fjernet element: hest Ny vektor: (hund, katt) Vektor etter klar (): ()
Andre vektormetoder
Metoder | Beskrivelser |
---|---|
set() | endrer et element i vektoren |
size() | returnerer størrelsen på vektoren |
toArray() | konverterer vektoren til en matrise |
toString() | konverterer vektoren til en streng |
contains() | søker i vektoren etter spesifisert element og returnerer et boolsk resultat |