logo

Vektorski razred v Javi

Razred Vector izvaja rastočo matriko objektov. Vektorji spadajo v podedovane razrede, zdaj pa je popolnoma združljiv z zbirkami. Najdemo ga v paket java.util in izvajati Seznam vmesnik, tako da lahko uporabimo vse metode vmesnika List, kot je prikazano spodaj, kot sledi:

Vektorski razred v Javi



  • Vector implementira dinamično polje, kar pomeni, da se lahko po potrebi poveča ali skrči. Tako kot polje vsebuje komponente, do katerih je mogoče dostopati s celoštevilskim indeksom.
  • Zelo so podobni ArrayList , vendar je Vector sinhroniziran in ima nekaj podedovanih metod, ki jih ogrodje zbirke ne vsebuje.
  • Prav tako vzdržuje vrstni red vstavljanja, kot je ArrayList. Kljub temu se redko uporablja v okolju brez niti, kot je sinhronizirano , in zaradi tega slabo deluje pri dodajanju, iskanju, brisanju in posodabljanju svojih elementov.
  • Iteratorji, ki jih vrne razred Vector, so hitri. V primeru sočasne spremembe ne uspe in vrže ConcurrentModificationException.

Sintaksa:

public class Vector extends AbstractList implements List, RandomAccess, Cloneable, Serializable>

tukaj, IN je vrsta elementa.

  • Razširja se AbstractList in pripomočke Seznam vmesniki.
  • Izvaja vmesnike Serializable, Cloneable, Iterable, Collection, List, RandomAccess.
  • Neposredno znani podrazred je Stack .

Pomembne točke v zvezi z inkrementom vektorske zmogljivosti so naslednje:



Če je inkrement določen, se bo Vector razširil v skladu z njim v vsakem ciklu dodelitve. Kljub temu, če prirastek ni določen, se zmogljivost vektorja v vsakem ciklu dodelitve podvoji. Vektor definira tri zaščitene podatkovne člane:

  • int CapacityIncrement: Vsebuje vrednost prirastka.
  • int elementCount: Število elementov, ki so trenutno shranjeni v vektorju.
  • Objekt elementData[]: V njej je shranjena matrika, ki vsebuje vektor.

Pogoste napake pri deklaraciji vektorjev so kot sledi :

  • Vektor vrže an IllegalArgumentException če je začetna velikost definiranega vektorja negativna.
  • Če je podana zbirka ničelna, vrže NullPointerException .

Konstruktorji

1. Vektor (): Ustvari privzeti vektor z začetno zmogljivostjo 10.



Vector v = new Vector();>

2. Vektor (int velikost): Ustvari vektor, katerega začetna zmogljivost je določena z velikostjo.

Vector v = new Vector(int size);>

3. Vektor (int velikost, int incr): Ustvari vektor, katerega začetna zmogljivost je podana z velikostjo, inkrement pa z incr. Določa število elementov, ki jih je treba dodeliti vsakič, ko se velikost vektorja spremeni navzgor.

json v primeru json
Vector v = new Vector(int size, int incr);>

4. Vektor (zbirka c): Ustvari vektor, ki vsebuje elemente zbirke c.

Vector v = new Vector(Collection c);>

Metode v vektorskem razredu

METODA

OPIS

dodaj (in in) Doda podani element na konec tega vektorja.
add(indeks, E element) Vstavi podani element na podano mesto v tem vektorju.

addAll(Zbirka

se razteza E> c)

niz formata java
Doda vse elemente v določeni zbirki na konec tega vektorja v vrstnem redu, kot jih vrne iterator navedene zbirke.

addAll(int indeks,

Zbirka c)

Vstavite vse elemente v določeni zbirki v ta vektor na določeno mesto.
addElement(E obj) Doda navedeno komponento na konec tega vektorja in poveča njegovo velikost za eno.
zmogljivost() Vrne trenutno zmogljivost tega vektorja.
počisti() Odstrani vse elemente iz tega vektorja.
klon() Vrne klon tega vektorja.
vsebuje (predmet o) Vrne true, če ta vektor vsebuje podani element.
vsebujeVse(Zbirka c) Vrne true, če ta vektor vsebuje vse elemente v navedeni zbirki.
copyInto (Object [] anArray) Kopira komponente tega vektorja v navedeno matriko.
elementAt(int indeks) Vrne komponento pri podanem indeksu.
elementi () Vrne naštevanje komponent tega vektorja.
zagotoviCapacity(int minCapacity) Po potrebi poveča kapaciteto tega vektorja, da zagotovi, da lahko vsebuje vsaj toliko komponent, ki jih določa argument minimalne zmogljivosti.
je enako (predmet o) Primerja navedeni predmet s tem vektorjem za enakost.
firstElement() Vrne prvo komponento (element z indeksom 0) tega vektorja.

forEach(Potrošnik

super E> akcija)

Izvede dano dejanje za vsak element Iterable, dokler niso vsi elementi obdelani ali dejanje vrže izjemo.
get(indeks) Vrne element na podani poziciji v tem vektorju.
hashCode() Vrne vrednost zgoščene kode za ta vektor.
indexOf(predmet o)

Vrne indeks prve pojavitve podanega elementa v tem vektorju,

ali -1, če ta vektor ne vsebuje elementa.

vstavite v tipkovnico
indexOf(predmet o, int indeks) Vrne indeks prve pojavitve podanega elementa v tem vektorju, pri čemer išče naprej od indeksa, ali vrne -1, če element ni najden.
insertElementAt(E obj, int indeks) Vstavi navedeni predmet kot komponento v tem vektorju pri podanem indeksu.
je prazno() Preveri, ali ta vektor nima komponent.
iterator() Vrne iterator nad elementi na tem seznamu v pravilnem zaporedju.
lastElement() Vrne zadnjo komponento vektorja.
lastIndexOf(predmet o)

Vrne indeks zadnje pojavitve podanega elementa v tem vektorju,

ali -1, če ta vektor ne vsebuje elementa.

lastIndexOf(predmet o, int indeks) Vrne indeks zadnje pojavitve podanega elementa v tem vektorju, pri čemer išče nazaj od indeksa, ali vrne -1, če element ni najden.
listIterator() Vrne iterator seznama nad elementi na tem seznamu (v pravilnem zaporedju).
listIterator(int indeks)

Vrne iterator seznama nad elementi na tem seznamu (v pravilnem zaporedju),

začenši na določenem mestu na seznamu.

odstrani (indeks) Odstrani element na določenem mestu v tem vektorju.
odstrani (predmet o) Odstrani prvo pojavitev podanega elementa v tem vektorju. Če vektor ne vsebuje elementa, je nespremenjen.
odstraniVse(Zbirka c) Iz tega vektorja odstrani vse njegove elemente, ki jih vsebuje navedena zbirka.
odstraniVseElemente() Odstrani vse komponente iz tega vektorja in nastavi njegovo velikost na nič.
removeElement(Object obj) Odstrani prvo (najnižje indeksirano) pojavitev argumenta iz tega vektorja.
odstraniElementAt(int indeks) Izbriše komponento na podanem indeksu.
removeIf (predikatni filter) Odstrani vse elemente te zbirke, ki izpolnjujejo dani predikat.

removeRange(int fromIndex,

int toIndex)

S tega seznama odstrani vse elemente, katerih indeks je med fromIndex, vključno, in toIndex, izključno.
replaceAll(operator UnaryOperator)Zamenja vsak element tega seznama z rezultatom uporabe operatorja za ta element.
retainAll(zbirka c) Ohrani samo elemente v tem vektorju, ki jih vsebuje navedena zbirka.
set(int indeks, E element) Zamenja element na podanem mestu v tem vektorju s podanim elementom.
setElementAt(E obj, int indeks) Nastavi komponento na podanem indeksu tega vektorja kot podani objekt.
setSize(int newSize) Nastavi velikost tega vektorja.
velikost () Vrne število komponent v tem vektorju.
razvrsti (primerjalnik c) Razvrsti ta seznam glede na vrstni red, ki ga povzroči podani primerjalnik.
spliterator() Ustvari pozno vezavo in hiter razdelilnik nad elementi na tem seznamu.
subList(int fromIndex, int toIndex) Vrne pogled dela tega seznama med fromIndex, vključno, in toIndex, izključno.
toArray() Vrne matriko, ki vsebuje vse elemente v tem vektorju v pravilnem vrstnem redu.
toArray(T[] a) Vrne matriko, ki vsebuje vse elemente v tem vektorju v pravilnem vrstnem redu; vrsta izvajalnega časa vrnjene matrike je navedena matrika.
toString() Vrne nizovno predstavitev tega vektorja, ki vsebuje nizovno predstavitev vsakega elementa.
trimToSize() Zmogljivost tega vektorja zmanjša na trenutno velikost vektorja.

Najprej se pogovorimo o tem, kako ustvariti in uporabiti vektor, preden se lotimo metod tega razreda, in jih implementiramo.

primer:

Java
// Java Program to Demonstrate Working of Vector // Via Creating and Using It // Importing required classes import java.io.*; import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Size of the Vector int n = 5; // Declaring the Vector with // initial size n Vector v = nov vektor (n); // Dodajanje novih elementov na // konec vektorja za (int i = 1; i<= n; i++) v.add(i); // Printing elements System.out.println(v); // Remove element at index 3 v.remove(3); // Displaying the vector // after deletion System.out.println(v); // iterating over vector elements // using for loop for (int i = 0; i < v.size(); i++) // Printing elements one by one System.out.print(v.get(i) + ' '); } }>

Izhod
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>

Opomba:

  • Če prirast vektorja ni določen, se bo njegova zmogljivost podvojila v vsakem ciklu prirastka.
  • Kapaciteta vektorja ne more biti manjša od velikosti, lahko ji je enaka.

Izvajanje različnih operacij v vektorskem razredu v Javi

Razpravljajmo o različnih operacijah v razredu Vector, ki so navedene na naslednji način:

jfx java tutorial
  1. Dodajanje elementov
  2. Posodabljanje elementov
  3. Odstranjevanje elementov
  4. Ponavljanje elementov

Operacija 1: Dodajanje elementov

Za dodajanje elementov vektorju uporabimo dodaj() metoda. Ta metoda je preobremenjena za izvajanje več operacij na podlagi različnih parametrov. Spodaj so navedeni na naslednji način:

  • dodaj (predmet): Ta metoda se uporablja za dodajanje elementa na konec vektorja.
  • add(int indeks, predmet): Ta metoda se uporablja za dodajanje elementa na določen indeks v vektorju.

primer:

Java
// Java Program to Add Elements in Vector Class // Importing required classes import java.io.*; import java.util.*; // Main class // AddElementsToVector class GFG { // Main driver method public static void main(String[] arg) { // Case 1 // Creating a default vector Vector v1 = new Vector(); // Adding custom elements // using add() method v1.add(1); v1.add(2); v1.add('geeks'); v1.add('forGeeks'); v1.add(3); // Printing the vector elements to the console System.out.println('Vector v1 is ' + v1); // Case 2 // Creating generic vector Vector v2 = nov vektor (); // Dodajanje elementov po meri // z uporabo metode add() v2.add(1); v2.add(2); v2.add(3); // Tiskanje vektorskih elementov na konzolo System.out.println('Vektor v2 je ' + v2); } }>

Izhod:


Vector v1 is [1, 2, geeks, forGeeks, 3] Vector v2 is [1, 2, 3]>

Operacija 2: Posodabljanje elementov

Po dodajanju elementov, če želimo element spremeniti, lahko to storimo z uporabo set() metoda. Ker je vektor indeksiran, se na element, ki ga želimo spremeniti, sklicuje indeks elementa. Zato ta metoda vzame indeks in posodobljen element, ki se vstavi v ta indeks.

Primer

Java
// Java code to change the // elements in vector class import java.util.*; // Driver Class public class UpdatingVector { // Main Function public static void main(String args[]) { // Creating an empty Vector Vector vec_tor = nov vektor (); // Uporabi metodo add() za dodajanje elementov v vektor vec_tor.add(12); vec_tor.add(23); vec_tor.add(22); vec_tor.add(10); vec_tor.add(20); // Prikaz vektorja System.out.println('Vektor: ' + vec_tor); // Uporaba metode set() za zamenjavo 12 z 21 System.out.println('Objekt, ki je zamenjan, je: ' + vec_tor.set(0, 21)); // Uporaba metode set() za zamenjavo 20 s 50 System.out.println('Objekt, ki je zamenjan, je: ' + vec_tor.set(4, 50)); // Prikaz spremenjenega vektorja System.out.println('Novi vektor je:' + vec_tor); } }>

Izhod
Vector: [12, 23, 22, 10, 20] The Object that is replaced is: 12 The Object that is replaced is: 20 The new Vector is:[21, 23, 22, 10, 50]>

Operacija 3: Odstranjevanje elementov

Če želite odstraniti element iz vektorja, lahko uporabimo Odstrani() metoda. Ta metoda je preobremenjena za izvajanje več operacij na podlagi različnih parametrov. To so:

  • odstrani (predmet): Ta metoda se uporablja za odstranitev predmeta iz vektorja. Če je takšnih objektov več, se prvi pojavitev predmeta odstrani.
  • odstrani (indeks): Ker je vektor indeksiran, ta metoda sprejme celoštevilsko vrednost, ki preprosto odstrani element, prisoten na tem specifičnem indeksu v vektorju. Po odstranitvi elementa se vsi elementi premaknejo v levo, da zapolnijo prostor, indeksi objektov pa se posodobijo.

Primer

Java
// Java code illustrating the removal // of elements from vector import java.util.*; import java.io.*; class RemovingElementsFromVector { public static void main(String[] arg) { // Create default vector of capacity 10 Vector v = new Vector(); // Add elements using add() method v.add(1); v.add(2); v.add('Geeks'); v.add('forGeeks'); v.add(4); // Removing first occurrence element at 1 v.remove(1); // Checking vector System.out.println('after removal: ' + v); } }>

Izhod:

after removal: [1, Geeks, forGeeks, 4]>

Operacija 4: Ponavljanje vektorja

aws rdeči premik

Obstaja več načinov za ponavljanje skozi Vektor. Najbolj znani načini so uporaba osnovne zanke for v kombinaciji z a dobiti () metoda za pridobitev elementa na določenem indeksu in napredno za zanko .

Primer

Java
// Java program to iterate the elements // in a Vector import java.util.*; public class IteratingVector { public static void main(String args[]) { // create an instance of vector Vectorv = nov vektor(); // Dodajte elemente z metodo add() v.add('Geeks'); v.add('Geeks'); v.add(1, 'Za'); // Z uporabo metode Get in // for zanke for (int i = 0; i< v.size(); i++) { System.out.print(v.get(i) + ' '); } System.out.println(); // Using the for each loop for (String str : v) System.out.print(str + ' '); } }>

Izhod
Geeks For Geeks Geeks For Geeks>

Opomba: Preberite ArrayList proti razredu Vector v Javi da bolje razumem.

V Javi je razred Vector del ogrodja zbirk Java in zagotavlja dinamično matrično implementacijo vmesnika List. Dodan je bil v prvotni izdaji Jave (Java 1.0) in ponuja številne metode za manipulacijo elementov vektorja, vključno z dodajanjem, vstavljanjem in odstranjevanjem elementov.

Tukaj je preprost primer, ki prikazuje, kako uporabljati vektor v Javi:

Java
import java.util.Vector; public class VectorExample { public static void main(String[] args) { // Create a new vector Vector v = nov vektor (3, 2); // Dodajanje elementov v vektor v.addElement(1); v.addElement(2); v.addElement(3); // Vstavi element pri indeksu 1 v.insertElementAt(0, 1); // Odstrani element pri indeksu 2 v.removeElementAt(2); // Izpis elementov vektorja za (int i : v) { System.out.println(i); } } }>

Izhod
1 0 3>

Upoštevajte, da je razred Vector sinhroniziran, kar pomeni, da lahko več niti dostopa do istega vektorja brez povzročanja težav. Vendar je ta sinhronizacija povezana s ceno zmogljivosti, tako da če vam ni treba deliti vektorja med več nitmi, je na splošno bolje uporabiti alternativni razred, kot je ArrayList, ki ni sinhroniziran.

Prednosti uporabe Vector v Javi:

  1. Sinhronizacija: Kot že omenjeno, je Vector sinhroniziran, zaradi česar je varna za uporabo v večnitnem okolju.
  2. Dinamična velikost: Velikost vektorja se lahko dinamično poveča ali skrči, ko se elementi dodajajo ali odstranjujejo, zato vam ni treba skrbeti, da nastavite začetno velikost, ki bo ustrezala vsem elementom.
  3. Podpora za starejše: Vector je del Jave od njenega začetka in je še vedno podprt, zato je dobra možnost, če morate delati s starejšo kodo Java, ki uporablja Vector.

Slabosti uporabe Vector v Javi:

  1. Zmogljivost: Sinhronizacija v Vector lahko povzroči počasnejše delovanje v primerjavi z drugimi razredi zbirke, kot je ArrayList.
  2. Podedovana koda: Čeprav je Vector še vedno podprt, je novejša koda Java pogosto napisana z uporabo sodobnejših razredov zbirke, zato je morda težje najti primere in podporo za Vector.
  3. Nepotrebni dodatni stroški: Če ne potrebujete sinhronizacijskih funkcij Vector, boste z njegovo uporabo dodali nepotrebne dodatne stroške vaši kodi.

Referenčna knjiga

Dobra referenčna knjiga za spoznavanje Java Collections Framework in Vector je Java Collections avtorjev Naftalin in Wadler. Ta knjiga ponuja celovit pogled na ogrodje zbirk Java, vključno z Vector, in vključuje veliko primerov in vaj, ki vam pomagajo razumeti, kako učinkovito uporabljati te razrede.