what is java vector java vector class tutorial with examples
Ovaj priručnik na primjerima objašnjava sve o strukturi vektorskih podataka u Javi. Naučit ćete izrađivati, inicirati, sortirati i koristiti Java Vector u svojim programima:
Vektor se može definirati kao dinamički niz koji može samostalno rasti ili se smanjivati, tj. Vektor će rasti kad mu se doda više elemenata i smanjivat će se kad se elementi iz njega uklone.
Ovo ponašanje je za razliku od nizova koji su statični. Ali slično kao nizi, vektorskim elementima može se pristupiti pomoću cjelobrojnih indeksa.
=> Ovdje pogledajte kako biste ovdje vidjeli A-Z Java tutorijala za obuku.
Vektor se može promatrati sličnim drugoj strukturi podataka dinamičkog niza, ArrayList, osim dvije razlike u nastavku:
- Vektor je sinkroniziran, tj. Sve metode u Vektoru označene su kao 'sinkronizirane', pa se, nakon što se metoda pozove, ne može pozvati ista metoda ako prethodni poziv nije završen.
- Vektorska klasa ima mnogo metoda koje nisu dio okvira zbirki već njezine naslijeđene metode.
Što ćete naučiti:
Java vektorska klasa
Predmet Vector je osim „ java.util ”Paket i implementira sučelje popisa. Vektor je niz objekata ili vektor objekata.
Deklaracija klase Vector klase data je u nastavku:
public class Vector extends Object implements List, Cloneable, Serializable
Kao što je gore prikazano, klasa Vector se proteže “ java.lang.object ”I implementira sučelja za popis, kloniranje i serializaciju.
Kako stvoriti vektor u Javi?
Možete stvoriti objekt Vector koristeći bilo koju od sljedećih metoda konstruktora Vector.
besplatne alternative za avast premium čišćenje
Prototip konstruktora | Opis | |
---|---|---|
Čisto | Praznina prazna () | Briše vektor njegovih elemenata. |
vektor() | Ovo je zadani konstruktor klase Vector. Stvara prazan vektor veličine 10. | |
vektor (int početni kapacitet) | Ovaj preopterećeni konstruktor konstruira prazan Vector objekt s kapacitetom = InitialCapacity. | |
vektor (int InitialCapacity, int capacityIncrement) | Ova metoda konstruktora stvara prazan objekt Vector s navedenim InitiCapacity i capacityIncrement. | |
Vektor (zbirka c) | Objekt Vector kreira se s početnim elementima iz navedene zbirke c. |
Pogledajmo svaki konstruktor za inicijalizaciju vektorskih objekata.
Inicijalizirajte vektor
(i) Vektor ()
Ovo je zadani konstruktor klase Vector. Kada pozovete ovaj konstruktor, stvara se Vector objekt zadane veličine 10.
Opća sintaksa ove metode je:
Objekt vektora = novi vektor ();
Na primjer,
Vector vec1 = new Vector ();
Gornja izjava stvara novi Vector 'vec1' veličine 10.
(ii) vektor (int početni kapacitet)
Preopterećeni konstruktor klase Vector prihvaća kao argument 'InitiCapacity'. Ovaj konstruktor stvara objekt Vector s navedenim kapacitetom.
Opća sintaksa metode je:
Objekt vektora = novi vektor (početni kapacitet);
Na primjer,
Vector vec1 = new Vector (10);
Gornja programska izjava stvorit će vektorski objekt 'vec1' s kapacitetom od 10 tj. Ovaj vektor može pohraniti do 10 elemenata.
(iii) Vektor (int InitiCapacity, int capacityIncrement)
Ovo je još jedan preopterećeni konstruktor klase Vector i stvara Vector objekt s navedenim početnim kapacitetom i priraštajem za kapacitet.
Općenita sintaksa ove metode je:
Objekt vektora = novi vektor (InitiCapacity, capacityIncrement);
Na primjer,
Vector vec1 = new Vector(5,10);
U gornjoj je izjavi početni kapacitet Vektora 5, a prirast 10. To znači kada 6thelement se umetne u vektor, kapacitet vektora će se povećati na 15 (5 + 10). Slično tome, kada je 16thelement umetnut, vektorski kapacitet vektora će se proširiti na 25 (15 +10).
(iv) Vektor (zbirka c)
Posljednji preopterećeni konstruktor klase Vector uzima kao argument unaprijed definiranu zbirku i stvara Vektor sa svim elementima iz ove kolekcije kao njegovim elementima.
Općenita sintaksa je:
Vektorski objekt = novi vektor (Zbirka c);
Na primjer,
Vector vec1 = new Vector(aList); where aList = {1,2,3,4,5};
Gornja izjava stvorit će Vector 'vec1' s početnim elementima kao {1,2,3,4, 5}.
Imajući na umu sve ove opise, omogućit ćemo nam da implementiramo program Vector kako bismo bolje razumjeli ove konstruktore.
Vektorske metode u Javi
Slijede metode koje podržava klasa Vector u Javi.
Naziv metode | Prototip | Opis |
---|---|---|
dodati | Logički dodatak (E e) | Dodaje dati element na kraj vektora. |
Nevažeće dodavanje (int indeks, E element) | Dodajte element u vektor po navedenom indeksu. | |
Dodaj Sve | Boolean addAll (Zbirka c) | Dodaje sve elemente iz zadane zbirke na kraj vektora. |
Logički addAll (indeks int, zbirka c) | Dodaje sve elemente u navedenoj zbirci po navedenom indeksu. | |
addElement | void addElement (E obj) | Dodaje navedeni element na kraj vektora povećavanjem veličine vektora. |
Kapacitet | Int kapacitet () | Vraća trenutni kapacitet vektora. |
Klon | Klon objekta () | Klonira vektor. |
Sadrži | Boolean sadrži (objekt o) | Provjerava sadrži li vektor navedeni element. |
sadržiSve | Boolean containsAll (Zbirka c) | Provjerava sadrži li vektor sve elemente prisutne u datoj zbirci. |
copyInto | Void copyInto (Object [] anArray) | Kopira vektorske elemente u zadani niz. |
ElementAt | E ElementAt (int indeks) | Vraća vektorski element po navedenom indeksu. |
Elementi | Elementi nabrajanja () | Vraća nabrojene komponente za vektor. |
osiguratiKapacitet | Prazno osigurati kapacitet (int minCapacity) | Povećava kapacitet vektora da zadovolji minimalni navedeni kapacitet. |
Naziv metode | Prototip | Opis |
---|---|---|
insertElementAt | Void insertElementAt (E obj, int indeks) | Umeće dati objekt u vektor s danim indeksom. |
Jednako | Boolean jednako (Objekt o) | Uspoređuje trenutni vektor s navedenim vektorom kako bi provjerio jesu li jednaki. |
firstElement | E firstElement () | Vraća prvi element vektora s indeksom 0. |
Dobiti | E get (int indeks) | Vraća element u vektoru po navedenom indeksu. |
hashCode | int hashCode () | Vraća vrijednost hash koda za Vektor. |
indexOf | int indexOf (objekt o) | pronalazi indeks prvog pojavljivanja datog elementa u vektoru; -1 ako element nije prisutan u vektoru. |
int indexOf (objekt o, int indeks) | Pretražuje vektor iz zadanog indeksa u smjeru naprijed za navedeni element; vraća indeks ako je element pronađen else -1 ako element nije pronađen. | |
prazno je | Boolean isEmpty () | Provjerava je li vektor prazan. |
Iterator | Iteratoriterator () | Vraća iterator koji se koristi za prelazak preko elemenata vektora. |
lastElement | E lastElement () | Vraća zadnji element vektora. |
lastIndexOf | Int lastIndexOf (objekt o) | Pretražuje vektor za posljednju pojavu datog elementa i vraća indeks ili vraća -1 element nije pronađen. |
Int lastIndexOf (objekt o, int indeks) | Počinje pretraživanje posljednjeg pojavljivanja datog elementa iz zadanog indeksa unatrag. Vraća indeks ako je element pronađen, inače vraća -1. | |
listIterator | ListIteratorlistIterator () | Vraća iterator popisa preko vektorskih elemenata. |
ListIteratorlistIterator (int indeks) | Vraća iterator popisa preko vektorskih elemenata počevši od zadanog indeksa. |
Naziv metode | Prototip | Opis |
---|---|---|
removeRange | zaštićena praznina removeRange (int fromIndex, int toIndex) | Briše sve elemente iz vektora u zadanom rasponu odIndex (uključujući) do TotoIndex (ekskluzivno). |
Ukloniti | E ukloni (int indeks) | Briše element iz zadanog indeksa iz vektora. |
Logičko uklanjanje (objekt o) | Briše prvu pojavu datog elementa iz vektora. Ako element nije prisutan, vektoru se ništa ne događa | |
ukloniti sve | Logičko uklanjanjeAll (Zbirka c) | Briše sve elemente iz vektora koji su prisutni u datoj zbirci. |
void removeAll Elements () | Briše sve vektorske elemente čime se smanjuje na nulu. | |
removeElement | Boolean removeElement (objekt objekta) | Uklanja prvu pojavu datog elementa iz vektora. |
void removeElementAt (int indeks) | Briše element u danom indeksu. | |
zadržiSve | Boolean retainAll (Zbirka c) | Za razliku od 'removeAll', metoda retainAll zadržava elemente u Vektoru koji se podudaraju s elementima u navedenoj zbirci. |
postaviti | E skup (indeks int, E element) | Postavlja vrijednost na zadani indeks s novim pruženim elementom. |
Void set ElementAt (E obj, int indeks) | Postavlja zadane elemente na zadani indeks. | |
setSize | Void setSize (int newSize) | Postavlja zadanu veličinu za ovaj vektor. |
Veličina | veličina int () | Vraća broj elemenata u ovom vektoru ili duljinu vektora. |
podlista | ListsubList (intfromIndex, inttoIndex) | Vraća pogled ili podlistu vektora u rasponu od Indeksa do Indeksa. |
toArray | Objekt [] uArray () | Pretvara zadani vektor u niz koji sadrži sve vektorske elemente u zadanom redoslijedu. |
T [] doArray (T [] a) | Vraća niz specificiranih tipova koji sadrže sve vektorske elemente. | |
toString | String toString () | Vraća nizni prikaz vektora. |
trimToSize | void trimToSize () | Obrezuje vektor da prilagodi trenutnoj veličini. |
Implementacija vektora
Sljedeći Java program prikazuje upotrebu svih gore opisanih metoda konstruktora.
import java.util.*; public class Main{ public static void main(String[] args) { //Create vectors v1, v2,v3 and v4 Vector v1 = new Vector(); //a vector with default constructor Vector v2 = new Vector(20); // a vector of given Size //initialize vector v2 with values v2.add(10); v2.add(20); v2.add(30); Vector v3 = new Vector(30, 10); // a vector of given Size and Increment // create a vector v4 with given collection List aList = new ArrayList(); aList.add('one'); aList.add('two'); Vector v4 = new Vector(aList); //print contents of each vector System.out.println('Vector v1 Contents:' + v1); System.out.println('Vector v2 Contents:' + v2); System.out.println('Vector v3 Contents:' + v3); System.out.println('Vector v4 Contents:' + v4); } }
Izlaz:
Gornji program sadrži četiri vektora. Prvi se v1 kreira sa zadanim konstruktorom. Drugi Vector v2 stvara se s početnim kapacitetom kao 20. Tada se v2 dodaje nekoliko elemenata. Treći Vektor je stvoren s početnim kapacitetom od 30 i korakom od 10.
Dalje, kreiramo ArrayList i stvaramo četvrti Vector v4 s ArrayListom kao argumentom. Na kraju, prikazujemo sadržaj svakog od ovih Vektora.
Obratite pažnju na sadržaj četvrtog vektora v4. Kao što smo kao argument naveli ArrayList, sadržaj ArrayList postaje sadržaj v4.
Kompletni primjer vektora
Ajmo sada provesti još jedan program koji hoće demonstriraju stvaranje vektora, dodajući im elemente i prikazujući njihov sadržaj.
import java.util.*; public class Main { public static void main(String args[]) { //Create an empty Vector of even numbers Vector evenVector= new Vector (); //Add elements in the vector evenVector.add(2); evenVector.add(4); evenVector.add(6); evenVector.add(8); evenVector.add(10); evenVector.add(12); evenVector.add(14); evenVector.add(16); //Display the vector System.out.println('Vector evenVector contents: ' +evenVector); //delete the first occurence of an element 4 using remove method System.out.println('
Firstoccurence of element 4 removed: '+evenVector.remove((Integer)4)); //Display the vector System.out.println('
Vector contents after remove operation: ' +evenVector); //Remove the element at index 4 & display the vector System.out.println('
Remove element at index 4: ' +evenVector.remove(4)); System.out.println('
Vector contents after remove: ' +evenVector); //hashcode for the vector System.out.println('
Hash code of the vector = '+evenVector.hashCode()); //Get the element at index 1 System.out.println('
Element at index 1 is = '+evenVector.get(1)); } }
Izlaz:
Uzmimo još jedan vektorski primjer. U ovom programu hoćemo koristite vektor niza . Ovim vektorom manipuliramo dodavanjem elemenata, a zatim ispisujemo njegovu veličinu i kapacitet.
import java.util.*; public class Main { public static void main(String args[]) { // create a vector with initial capacity = 2 Vector fruits_vec = new Vector(2); //add elements to the vector fruits_vec.addElement('Grapes'); fruits_vec.addElement('Melon'); fruits_vec.addElement('Kiwi'); fruits_vec.addElement('Apple'); //print current size and capacity of the vector System.out.println('Vector Size: '+fruits_vec.size()); System.out.println('Default Vector capacity increment: '+fruits_vec.capacity()); //add more elements to the vector fruits_vec.addElement('Orange'); fruits_vec.addElement('Mango'); fruits_vec.addElement('Fig'); //print current size and capacity again System.out.println('Vector Size after addition: '+fruits_vec.size()); System.out.println('Vector Capacity after increment: '+fruits_vec.capacity()); //print vector elements Enumeration fruits_enum = fruits_vec.elements(); System.out.println('
Vector Elements are:'); while(fruits_enum.hasMoreElements()) System.out.print(fruits_enum.nextElement() + ' '); } }
Izlaz:
Poredaj vektor
Također možete sortirati vektor prema određenom redoslijedu. Za sortiranje vektora morate koristiti metodu Collections.sort () Java Collections Framework-a.
Sljedeći primjer prikazuje razvrstavanje vektora.
kako otvoriti dat datoteku u sustavu Windows -
import java.util.*; public class Main { public static void main(String arg[]) { //Create an empty vector Vector oddVector = new Vector(); //Add elements to the vector oddVector.add(1); oddVector.add(11); oddVector.add(7); oddVector.add(3); oddVector.add(5); //print the vector elements System.out.println('Vector elements: '+oddVector); //sort vector using Collections.sort method Collections.sort(oddVector); //print sorted vector System.out.println('Vector elements after sorting: '+oddVector); } }
Izlaz:
Gornji program stvara Vektor neparnih brojeva. Zatim se metodom Collections.sort (), Vector sortira.
2D (dvodimenzionalni) vektor
2d vektor je vektor koji ima svaki od svojih elemenata kao vektor. Može se nazvati i „Vektor vektora“.
Primjer u nastavku prikazuje 2d vektor.
import java.util.*; public class Main { public static void main(String args[]) { //define and initialize a vector Vector inner_vec = new Vector(); inner_vec.add('Software'); inner_vec.add('Testing'); inner_vec.add('Java'); inner_vec.add('Tutorials'); //define another vector and add first vector to it. Vector outer_vec = new Vector(); outer_vec.add(inner_vec); String str; //display the contents of vector of vectors System.out.println('Contents of vector of vectors:'); for(int i=0;i Izlaz:
U gore navedenom programu imamo Vektor od četiri elementa. Zatim deklariramo drugi vektor i dodamo prethodni vektor kao element drugom vektoru. Obratite pažnju na način pristupa elementima vektora. Oblikujte petlju for, možete zaključiti da je prvi element vanjskog vektora (s indeksom 0) prvi ili unutarnji vektor.
Dakle, u petlji držimo indeks vanjskog vektora kao 0 i petlju kroz unutarnji vektor prikazujemo sve elemente.
Pretvori vektor u niz
Razmotrimo sljedeći primjer pretvaranja vektora u niz. Za pretvaranje vektora u niz koristimo metodu 'toArray' klase Vector.
U sljedećem primjeru programiranja , deklariramo niz Vector i dodajemo mu elemente. Zatim pomoću metode toArray klase Vector pretvaramo Vector u niz String tako što ćemo kao argument proslijediti objekt niza niza.
import java.util.Vector; public class Main { public static void main(String[] args) { // Create a Vector of String elements Vector color_vector = new Vector(); // Add elements to Vector color_vector.add('Violet'); color_vector.add('Indigo'); color_vector.add('Blue'); color_vector.add('Green'); color_vector.add('Yellow'); color_vector.add('Orange'); color_vector.add('Red'); //Convert Vector to String Array using toArray method String[] colorsArray = color_vector.toArray(new String[color_vector.size()]); //print Array Elements System.out.println('String Array Elements :'); for(String val:colorsArray){ System.out.print(val + ' '); } } }
Izlaz:
Vektor vs niz
U nastavku su navedene neke od razlika između vektora i niza.
Vektor Niz Rezervira dodatnu pohranu kada se poveća kapacitet. Ne rezervira dodatnu pohranu. Vektor je dinamičan i njegova veličina raste i smanjuje se kad se elementi dodaju ili uklanjaju. Nizovi su statični i njegova veličina ostaje fiksna nakon što se deklarira. Vektori mogu pohraniti samo predmete. Nizovi mogu pohraniti primitivne tipove kao i objekte. Pruža metodu size () za određivanje veličine. Pruža svojstvo duljine za određivanje duljine. Nema koncepcijskih dimenzija, ali se može stvoriti kao vektor vektora, koji se obično naziva 2d vektor. Dimenzije podupiru nizove. Vektor je sinkroniziran. Niz nije sinkroniziran. Vektor je sporiji od niza. Niz je brži. Osigurava sigurnost tipa podržavanjem generičkih lijekova. Nema generičke podrške.
Vektor vs ArrayList
Ovaj odjeljak govori o razlici između Vector i ArrayList u Javi.
Vektor ArrayList Vektor ima veličinu prirasta pomoću koje se veličina vektora može povećati. ArrayList ne pruža veličinu prirasta. Prisutan od početne verzije Jave (verzija JDK 1.0). Uvedeno u Javi od JDK 1.2 Vector je naslijeđena klasa Java. ArrayList dio je okvira Java Collections Framework. Vektor raste dvostruko više kad se dostigne njegov kapacitet. ArrayList raste za upola manju veličinu kad se dosegne njegov kapacitet. Vektorske metode su sinkronizirane. ArrayList nije sinkroniziran. Vector koristi Enumerator i Iterator za kretanje. ArrayList koristi samo Iterator. Vektorske operacije su sporije. ArrayList je brži. Vector je siguran u nitima, što znači da je korištenje Vector-a iz više niti dozvoljeno i sigurno. ArrayList nije siguran u niti.
Često postavljana pitanja
P # 1) Što je Vector u Javi?
Odgovor: U Javi se Vector može definirati kao niz objekata koji se mogu množiti. Slično kao nizovima, i vektorskim elementima se može pristupiti pomoću indeksa.
P # 2) Je li vektor uređen u Javi?
Odgovor: Da. Naređuje se Vector i održava redoslijed umetanja elemenata.
P # 3) Je li Vector sigurno zaštićen od niti u Javi?
Odgovor: Da. U Javi je klasa Vector sigurna u nitima. Kako je klasa Vector sinkronizirana, čini je sigurnom za nit, tj. Klasu Vector možete koristiti iz više niti i sigurna je.
P # 4) Zašto u Javi koristimo vektor?
Odgovor: Najvažniji razlog zbog kojeg se Vector koristi u Javi je taj što Vector raste i automatski se smanjuje. Dinamični su zbog čega su im draži od nizova.
P # 5) Što je bolje - ArrayList ili vektor?
Odgovor: ArrayList s obzirom na performanse brži je u usporedbi s vektorom jer je Vector sinkroniziran i čini ga sporijim.
Zaključak
U ovom uputstvu započeli smo sa strukturom podataka Vector u Javi. Vektori su gotovo slični nizu u kojem se elementima Vector pristupa pomoću poznatih indeksa. Vektori se nazivaju dinamičkim nizom i za razliku od nizova, Vektorska veličina automatski se smanjuje.
Vektori također imaju značajke kapaciteta i prirasta koje se mogu koristiti za stvaranje i rezerviranje dodatne pohrane za buduće dodatke. Vector je naslijeđena klasa u java.util paketu Java i sinkroniziran je kao i zaštićen od niti.
Stoga bismo trebali preferirati vektore kad nam treba dinamička veličina, a također i dok radimo u okruženju s više niti.
=> Posjetite ovdje za ekskluzivnu seriju udžbenika za Java.
Preporučena literatura
- JAVA Tutorial za početnike: 100+ praktičnih Java Video tutorijala
- Java Vodič za refleksiju s primjerima
- Java sučelje i udžbenik klase sažetak sa primjerima
- Nazubljeni niz u Javi - Vodič s primjerima
- Vodič za dužinu Java polja s primjerima koda
- Kako sortirati niz u Javi - Vodič sa primjerima
- Java 'this' ključna riječ: Vodič sa primjerima koda
- Pristupiti modifikatorima u Javi - Vodič s primjerima