Vector-luokka toteuttaa kasvavan objektijoukon. Vektorit kuuluvat vanhoihin luokkiin, mutta nyt se on täysin yhteensopiva kokoelmien kanssa. Se löytyy osoitteesta java.util-paketti ja toteuttaa Lista käyttöliittymä, joten voimme käyttää kaikkia List-käyttöliittymän menetelmiä alla esitetyllä tavalla seuraavasti:

- Vector toteuttaa dynaamisen taulukon, mikä tarkoittaa, että se voi kasvaa tai kutistua tarpeen mukaan. Kuten taulukko, se sisältää komponentteja, joita voidaan käyttää kokonaislukuindeksillä.
- Ne ovat hyvin samanlaisia ArrayList , mutta Vector on synkronoitu ja siinä on joitain vanhoja menetelmiä, joita kokoelmakehys ei sisällä.
- Se ylläpitää myös lisäysjärjestystä, kuten ArrayList. Silti sitä käytetään harvoin ei-säikeisessä ympäristössä sellaisenaan synkronoitu , ja tämän vuoksi se antaa huonon suorituskyvyn elementtien lisäämisessä, etsimisessä, poistamisessa ja päivittämisessä.
- Vector-luokan palauttamat iteraattorit ovat nopeita. Samanaikaisen muokkauksen tapauksessa se epäonnistuu ja heittää ConcurrentModificationException.
Syntaksi:
public class Vector extends AbstractList implements List, RandomAccess, Cloneable, Serializable>
Tässä, JA on elementin tyyppi.
- Se ulottuu Abstract List ja toteuttaa Lista käyttöliittymät.
- Se toteuttaa sarjoitettavan, kloonattavan, iteroitavan, kokoelman, luettelon ja satunnaiskäyttöliittymät.
- Suoraan tunnettu alaluokka on Pino .
Tärkeitä kohtia vektorin kapasiteetin lisäyksestä ovat seuraavat:
Jos inkrementti on määritetty, Vector laajenee sen mukaan jokaisessa allokaatiojaksossa. Silti, jos inkrementtiä ei ole määritetty, vektorin kapasiteetti kaksinkertaistuu jokaisessa allokointijaksossa. Vector määrittelee kolme suojattua datajäsentä:
- int kapasiteetti Lisäys: Sisältää lisäysarvon.
- int elementCount: Siihen tallennettujen vektorien elementtien lukumäärä.
- ObjektielementtiData[]: Matriisi, joka sisältää vektorin, on tallennettu siihen.
Yleiset virheet vektorien määrittelyssä ovat seuraa :
- Vector heittää IllegalArgumentException jos määritellyn vektorin InitialSize on negatiivinen.
- Jos määritetty kokoelma on tyhjä, se heittää NullPointerException .
Rakentajat
1. Vektori(): Luo oletusvektorin, jonka alkukapasiteetti on 10.
Vector v = new Vector();>
2. Vektori (int koko): Luo vektorin, jonka alkukapasiteetti on määritetty koon mukaan.
Vector v = new Vector(int size);>
3. Vektori(int koko, int inkr): Luo vektorin, jonka alkukapasiteetti on määritetty koon mukaan ja lisäys määritetään incr:llä. Se määrittää elementtien määrän, jotka allokoidaan aina, kun vektorin kokoa muutetaan ylöspäin.
inurl:.git/head
Vector v = new Vector(int size, int incr);>
4. Vektori(kokoelma c): Luo vektorin, joka sisältää kokoelman c elementit.
Vector v = new Vector(Collection c);>
Vektoriluokan menetelmät
MENETELMÄ | KUVAUS |
|---|---|
| lisää (ja ja) | Liittää määritetyn elementin tämän vektorin loppuun. |
| add(int-indeksi, E-elementti) | Lisää määritetyn elementin määritettyyn kohtaan tässä vektorissa. |
addAll(kokoelma ulottuu E> c) kuinka int muunnetaan merkkijonoksi java | Liittää kaikki määritetyn kokoelman elementit tämän vektorin loppuun siinä järjestyksessä, jossa määritetyn kokoelman iteraattori palauttaa ne. |
addAll(int indeksi, Kokoelma c) | Lisää kaikki määritetyn kokoelman elementit tähän vektoriin määritettyyn kohtaan. |
| addElement(E obj) | Lisää määritetyn komponentin tämän vektorin loppuun ja lisää sen kokoa yhdellä. |
| kapasiteetti () | Palauttaa tämän vektorin nykyisen kapasiteetin. |
| asia selvä() | Poistaa kaikki elementit tästä vektorista. |
| klooni() | Palauttaa tämän vektorin kloonin. |
| sisältää (objekti o) | Palauttaa tosi, jos tämä vektori sisältää määritetyn elementin. |
| sisältääKaikki (kokoelma c) | Palauttaa tosi, jos tämä vektori sisältää kaikki määritetyn kokoelman elementit. |
| copyInto ( Object [ ] anArray ) | Kopioi tämän vektorin komponentit määritettyyn taulukkoon. |
| elementAt(int-indeksi) | Palauttaa määritetyn indeksin komponentin. |
| elementit() | Palauttaa luettelon tämän vektorin komponenteista. |
| varmista Kapasiteetti (int minCapacity) | Lisää tämän vektorin kapasiteettia tarvittaessa varmistaakseen, että se sisältää vähintään vähimmäiskapasiteettiargumentin määrittämän määrän komponentteja. |
| yhtä suuri (objekti o) | Vertaa määritettyä objektia tähän vektoriin tasa-arvon saamiseksi. |
| firstElement() | Palauttaa tämän vektorin ensimmäisen komponentin (kohteen indeksissä 0). |
jokaiselle (kuluttaja super E> toiminta) | Suorittaa annetun toiminnon kullekin iterable-elementille, kunnes kaikki elementit on käsitelty tai toiminto tekee poikkeuksen. |
| get(int index) | Palauttaa elementin määritetyssä paikassa tässä vektorissa. |
| hash koodin() | Palauttaa tämän vektorin hash-koodin arvon. |
| indexOf(Object o) | Palauttaa indeksin määritetyn elementin ensimmäisestä esiintymisestä tässä vektorissa, tai -1, jos tämä vektori ei sisällä elementtiä. alkuluku java |
| indexOf(objekti o, int indeksi) | Palauttaa indeksin määritetyn elementin ensimmäisestä esiintymisestä tässä vektorissa, etsien eteenpäin indeksistä, tai palauttaa -1, jos elementtiä ei löydy. |
| insertElementAt(E obj, int index) | Lisää määritetyn objektin tämän vektorin komponenttina määritettyyn indeksiin. |
| on tyhjä() | Testaa, onko tällä vektorilla komponentteja. |
| iteraattori() | Palauttaa iteraattorin tämän luettelon elementtien päälle oikeassa järjestyksessä. |
| viimeinen elementti() | Palauttaa vektorin viimeisen komponentin. |
| lastIndexOf(Object o) | Palauttaa indeksin määritetyn elementin viimeisestä esiintymisestä tässä vektorissa, tai -1, jos tämä vektori ei sisällä elementtiä. |
| lastIndexOf(Object o, int index) | Palauttaa indeksin määritetyn elementin viimeisestä esiintymisestä tässä vektorissa, haettaessa hakemistosta taaksepäin, tai palauttaa arvon -1, jos elementtiä ei löydy. |
| listIterator() | Palauttaa luetteloiteraattorin tämän luettelon elementtien päälle (oikeassa järjestyksessä). |
| listIterator(int index) | Palauttaa luetteloiteraattorin tämän luettelon elementtien päälle (oikeassa järjestyksessä), alkaen määritetystä kohdasta luettelossa. |
| poista (int index) | Poistaa elementin määritetystä sijainnista tässä vektorissa. |
| poista (objekti o) | Poistaa määritetyn elementin ensimmäisen esiintymän tästä vektorista. Jos vektori ei sisällä elementtiä, se on muuttumaton. |
| poista kaikki (kokoelma c) | Poistaa tästä vektorista kaikki sen elementit, jotka sisältyvät määritettyyn kokoelmaan. |
| poistaAllElements() | Poistaa kaikki komponentit tästä vektorista ja asettaa sen koon nollaan. |
| poistaElement(Objektiobjekti) | Poistaa argumentin ensimmäisen (alhaisimman indeksin) esiintymän tästä vektorista. |
| poistaElementAt(int index) | Poistaa määritetyn hakemiston komponentin. |
| removeIf (predikaattisuodatin) | Poistaa kaikki tämän kokoelman elementit, jotka täyttävät annetun predikaatin. |
removeRange(int fromIndex, int toIndex) | Poistaa tästä luettelosta kaikki elementit, joiden indeksi on välillä fromIndex, inclusive ja toIndex, poissulkeva. |
| korvaa kaikki (UnaryOperator-operaattori) | Korvaa tämän luettelon jokaisen elementin tuloksella, jolla kyseiseen elementtiin sovelletaan operaattoria. |
| säilyttää kaikki (kokoelma c) | Säilyttää vain tämän vektorin elementit, jotka sisältyvät määritettyyn kokoelmaan. |
| set(int index, E-elementti) | Korvaa tässä vektorissa määritetyssä kohdassa olevan elementin määritetyllä elementillä. |
| setElementAt(E obj, int index) | Asettaa tämän vektorin määritetyn indeksin komponentin määritetyksi objektiksi. |
| setSize(int newSize) | Asettaa tämän vektorin koon. |
| koko() | Palauttaa tämän vektorin komponenttien lukumäärän. |
| lajitella (vertailija c) | Lajittelee tämän luettelon määritetyn vertailijan aikaansaaman järjestyksen mukaan. |
| splitter() | Luo myöhään sitovan ja nopean jakajan tämän luettelon elementtien päälle. |
| alilista(int fromIndex, int toIndex) | Palauttaa näkymän tämän luettelon osasta fromIndex, inclusive ja toIndex, poissulkeva. |
| toArray() | Palauttaa taulukon, joka sisältää kaikki tämän vektorin elementit oikeassa järjestyksessä. |
| toArray(T[] a) | Palauttaa taulukon, joka sisältää kaikki tämän vektorin elementit oikeassa järjestyksessä; palautetun taulukon ajonaikainen tyyppi on määritetyn taulukon tyyppi. |
| toString() | Palauttaa tämän vektorin merkkijonoesityksen, joka sisältää kunkin elementin merkkijonoesityksen. |
| leikkaa kokoon() | Leikkaa tämän vektorin kapasiteetin vektorin nykyiseksi kooksi. |
Keskustellaan ensin ja toteutetaan vektorin luominen ja käyttäminen ennen kuin ryhdymme tämän luokan menetelmiin.
Esimerkki:
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 = uusi vektori (n); // Uusien elementtien lisääminen // vektorin loppuun for (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) + ' '); } }> Lähtö
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>
Huomautus:
- Jos vektorin inkrementtiä ei ole määritetty, sen kapasiteetti kaksinkertaistuu jokaisessa inkrementtijaksossa.
- Vektorin kapasiteetti ei voi olla kokoa pienempi, se voi olla yhtä suuri.
Erilaisten toimintojen suorittaminen Vector-luokassa Javassa
Keskustellaan erilaisista Vector-luokan toiminnoista, jotka on lueteltu seuraavasti:
java boolen merkkijono
- Elementtien lisääminen
- Päivitetään elementtejä
- Elementtien poistaminen
- Iterointi elementtien yli
Operaatio 1: Elementtien lisääminen
Elementtien lisäämiseksi Vectoriin käytämme lisätä() menetelmä. Tämä menetelmä on ylikuormitettu suorittamaan useita toimintoja eri parametrien perusteella. Ne on lueteltu alla seuraavasti:
- lisää (objekti): Tätä menetelmää käytetään elementin lisäämiseen Vectorin loppuun.
- add(int index, Object): Tätä menetelmää käytetään elementin lisäämiseen vektorin tiettyyn indeksiin.
Esimerkki:
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 = uusi vektori (); // Mukautettujen elementtien lisääminen // add()-metodilla v2.add(1); v2.add(2); v2.add(3); // Vektorielementtien tulostaminen konsoliin System.out.println('Vector v2 on ' + v2); } }> Lähtö:

Vector v1 is [1, 2, geeks, forGeeks, 3] Vector v2 is [1, 2, 3]>
Operaatio 2: Elementtien päivittäminen
Elementtien lisäämisen jälkeen, jos haluamme muuttaa elementtiä, se voidaan tehdä käyttämällä aseta() menetelmä. Koska vektori on indeksoitu, elementin indeksillä viitataan elementtiin, jota haluamme muuttaa. Siksi tämä menetelmä ottaa indeksin ja päivitetyn elementin lisättäväksi kyseiseen indeksiin.
Esimerkki
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 vector_vektori = uusi vektori (); // Käytä add()-metodia elementtien lisäämiseen vektoriin vector_tor.add(12); vector.add(23); vector.add(22); vektori_vektori.lisää(10); vektori_vektori.lisää(20); // Vektorin näyttäminen System.out.println('Vector: ' + vector_tor); // Käytä set()-metodia 12:n korvaamiseen 21:llä System.out.println('Korvattava objekti on: ' + vec_tor.set(0, 21)); // Metodin set() käyttö korvaamaan 20 arvolla 50 System.out.println('Korvattava objekti on: ' + vec_tor.set(4, 50)); // Muokatun vektorin näyttäminen System.out.println('Uusi vektori on:' + vector_vektori); } }> Lähtö
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]>
Operaatio 3: Elementtien poistaminen
Elementin poistamiseksi vektorista voimme käyttää Poista() menetelmä. Tämä menetelmä on ylikuormitettu suorittamaan useita toimintoja eri parametrien perusteella. He ovat:
- poista (objekti): Tätä menetelmää käytetään objektin poistamiseen vektorista. Jos tällaisia objekteja on useita, objektin ensimmäinen esiintyminen poistetaan.
- poista (int index): Koska vektori on indeksoitu, tämä menetelmä ottaa kokonaislukuarvon, joka yksinkertaisesti poistaa vektorin kyseisessä indeksissä olevan elementin. Elementin poistamisen jälkeen kaikki elementit siirretään vasemmalle täyttämään tila ja objektien indeksit päivitetään.
Esimerkki
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); } }> Lähtö:
after removal: [1, Geeks, forGeeks, 4]>
Toiminto 4: Vektorin toistaminen
parametri shell-skriptissä
Vektorin läpi voi toistaa useilla tavoilla. Tunnetuin tapa on käyttää perus-for-silmukkaa yhdessä a:n kanssa saada() menetelmä saada elementti tiettyyn indeksiin ja edistynyt silmukaksi .
Esimerkki
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 = uusi vektori(); // Lisää elementtejä käyttämällä add()-metodia v.add('Geeks'); v.add('Geeks'); v.add(1, 'For'); // Käyttämällä Get-menetelmää ja // for-silmukkaa 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 + ' '); } }> Lähtö
Geeks For Geeks Geeks For Geeks>
Huomautus: Anna lukea ArrayList vs Vector -luokka Javassa ymmärtämään sitä paremmin.
Javassa Vector-luokka on osa Java Collections Frameworkia ja tarjoaa List-rajapinnan dynaamisen taulukkototeutuksen. Se lisättiin alkuperäiseen Java-julkaisuun (Java 1.0), ja se tarjoaa useita menetelmiä vektorin elementtien manipulointiin, mukaan lukien elementtien lisääminen, lisääminen ja poistaminen.
Tässä on yksinkertainen esimerkki, joka havainnollistaa vektorin käyttöä Javassa:
Java import java.util.Vector; public class VectorExample { public static void main(String[] args) { // Create a new vector Vector v = uusi vektori(3, 2); // Lisää elementtejä vektoriin v.addElement(1); v.addElement(2); v.addElement(3); // Lisää elementti indeksiin 1 v.insertElementAt(0, 1); // Poista elementti indeksistä 2 v.removeElementAt(2); // Tulosta vektorin elementit kohteelle (int i : v) { System.out.println(i); } } }> Lähtö
1 0 3>
Huomaa, että Vector-luokka on synkronoitu, mikä tarkoittaa, että useat säikeet voivat päästä samaan vektoriin ilman ongelmia. Tämä synkronointi maksaa kuitenkin suorituskyvyn, joten jos sinun ei tarvitse jakaa vektoria useiden säikeiden välillä, on yleensä parempi käyttää vaihtoehtoista luokkaa, kuten ArrayList, jota ei synkronoida.
Vectorin käytön edut Javassa:
- Synkronointi: Kuten aiemmin mainittiin, Vector on synkronoitu, mikä tekee siitä turvallisen käyttää monisäikeisessä ympäristössä.
- Dynaaminen koko: Vektorin koko voi kasvaa tai pienentyä dynaamisesti, kun elementtejä lisätään tai poistetaan, joten sinun ei tarvitse huolehtia alkuperäisen koon asettamisesta, joka mahtuu kaikkiin elementteihin.
- Vanha tuki: Vector on ollut osa Javaa sen alusta lähtien ja sitä tuetaan edelleen, joten se on hyvä vaihtoehto, jos haluat työskennellä vanhemman Java-koodin kanssa, joka käyttää Vectoria.
Vectorin käytön haitat Javassa:
- Suorituskyky: Vectorin synkronointi voi johtaa hitaampaan suorituskykyyn verrattuna muihin kokoelmaluokkiin, kuten ArrayList.
- Vanha koodi: Vaikka Vector on edelleen tuettu, uudempi Java-koodi kirjoitetaan usein käyttämällä nykyaikaisempia kokoelmaluokkia, joten voi olla vaikeampaa löytää esimerkkejä ja tukea Vectorille.
- Tarpeettomat yleiskustannukset: Jos et tarvitse Vectorin synkronointiominaisuuksia, sen käyttö lisää koodiisi tarpeettomia lisäkustannuksia.
Hakuteos
Hyvä hakuteos Java Collections Frameworkin ja Vectorin oppimiseen on Naftalinin ja Wadlerin Java Collections. Tämä kirja tarjoaa kattavan katsauksen Java-kokoelmakehykseen, mukaan lukien Vector, ja sisältää monia esimerkkejä ja harjoituksia, jotka auttavat sinua ymmärtämään, kuinka näitä luokkia käytetään tehokkaasti.