what is java vector java vector class tutorial with examples
Tento výukový program vysvětluje vše o struktuře vektorových dat v Javě s příklady. Naučíte se vytvářet, inicializovat, třídit a používat vektor Java ve svých programech:
Vektor lze definovat jako dynamické pole, které se může samy zvětšovat nebo zmenšovat, tj. Vektor se zvětší, když se do něj přidá více prvků, a zmenší se, když se z něj prvky odstraní.
Toto chování je na rozdíl od statických polí. Ale podobně jako u polí lze k vektorovým prvkům přistupovat pomocí celočíselných indexů.
=> Podívejte se sem a podívejte se na A-Z výukových kurzů Java zde.
Vektor lze považovat za podobný jiné datové struktuře dynamického pole, ArrayList kromě dvou níže uvedených rozdílů:
- Vektor je synchronizován, tj. Všechny metody ve Vektoru jsou označeny jako „synchronizovány“, a proto jakmile je metoda vyvolána, nelze vyvolat stejnou metodu, dokud nebylo ukončeno předchozí volání.
- Vektorová třída má mnoho metod, které nejsou součástí rámce kolekcí, ale jejích starších metod.
Co se naučíte:
Java Vector Class
Třída Vector je mimo „ java.util ”Balíček a implementuje rozhraní seznamu. Vektor je pole objektů nebo vektor objektů.
Deklarace třídy třídy Vector je uvedena níže:
public class Vector extends Object implements List, Cloneable, Serializable
Jak je uvedeno výše, třída Vector rozšiřuje „ java.lang.object “A implementuje rozhraní List, Cloneable a Serializable.
Jak vytvořit vektor v Javě?
Vektorový objekt můžete vytvořit pomocí kterékoli z následujících metod konstruktoru Vector.
jak vytvořit dvojnásobně propojený seznam java
Prototyp konstruktoru | Popis | |
---|---|---|
Průhledná | Prázdné místo () | Vymaže vektor jeho prvků. |
vektor() | Toto je výchozí konstruktor třídy Vector. Vytvoří prázdný vektor o velikosti 10. | |
vektor (int initialCapacity) | Tento přetížený konstruktor vytvoří prázdný Vector objekt s kapacitou = initialCapacity. | |
vektor (int initialCapacity, int capacityIncrement) | Tato metoda konstruktoru vytvoří prázdný Vector objekt se zadanými initialCapacity a capacityIncrement. | |
Vektor (kolekce c) | Objekt Vector je vytvořen s počátečními prvky ze zadané kolekce c. |
Pojďme se podívat na každého z konstruktorů pro inicializaci vektorových objektů.
Inicializovat vektor
(i) Vektor ()
Toto je výchozí konstruktor třídy Vector. Při vyvolání tohoto konstruktoru se vytvoří objekt Vector výchozí velikosti 10.
Obecná syntaxe této metody je:
Vektorový objekt = nový Vector ();
Například,
Vector vec1 = new Vector ();
Výše uvedené tvrzení vytváří nový Vector „vec1“ o velikosti 10.
(ii) Vektor (int initialCapacity)
Přetížený konstruktor třídy Vector přijímá jako argument ‚initialCapacity '. Tento konstruktor vytvoří objekt Vector se zadanou kapacitou.
Obecná syntaxe metody je:
Vektorový objekt = nový Vector (initialCapacity);
Například,
Vector vec1 = new Vector (10);
Výše uvedený programovací příkaz vytvoří vektorový objekt „vec1“ s kapacitou 10, tj. Tento Vector může uložit až 10 prvků.
(iii) Vektor (int initialCapacity, int capacityIncrement)
Toto je další přetížený konstruktor třídy Vector a vytvoří objekt Vector se zadanou počáteční kapacitou a přírůstkem kapacity.
Obecná syntaxe pro tuto metodu je:
Vektorový objekt = nový Vector (initialCapacity, capacityIncrement);
Například,
Vector vec1 = new Vector(5,10);
Ve výše uvedeném prohlášení je počáteční kapacita Vektoru 5 a přírůstek 10. To znamená, když 6thprvek se vloží do vektoru, kapacita vektoru se zvýší na 15 (5 + 10). Podobně, když 16.thPokud je vložen prvek, vektorová kapacita Vektoru se rozšíří na 25 (15 +10).
(iv) Vektor (kolekce c)
Poslední přetížený konstruktor třídy Vector převezme předdefinovanou kolekci jako argument a vytvoří Vector se všemi prvky z této kolekce jako jeho prvky.
Obecná syntaxe je:
Vektorový objekt = nový Vektor (kolekce c);
Například,
Vector vec1 = new Vector(aList); where aList = {1,2,3,4,5};
Výše uvedené prohlášení vytvoří vektor „vec1“ s počátečními prvky jako {1,2,3,4, 5}.
Mějte na paměti všechny tyto popisy a umožní nám implementovat program Vector, abychom těmto konstruktérům lépe porozuměli.
Vektorové metody v Javě
Následují metody podporované třídou Vector v Javě.
Název metody | Prototyp | Popis |
---|---|---|
přidat | Booleovský doplněk (E e) | Přidá daný prvek na konec vektoru. |
Void add (int index, E element) | Přidejte prvek do vektoru v zadaném indexu. | |
přidat vše | Boolean addAll (kolekce c) | Přidá všechny prvky z dané kolekce na konec vektoru. |
Boolean addAll (int index, kolekce c) | Přidá všechny prvky v zadané kolekci v zadaném indexu. | |
addElement | void addElement (E obj) | Přidá zadaný prvek na konec vektoru zvětšením velikosti vektoru. |
Kapacita | Int kapacita () | Vrátí aktuální kapacitu vektoru. |
Klonovat | Klon objektu () | Klonuje vektor. |
Obsahuje | Boolean obsahuje (Objekt o) | Zkontroluje, zda vektor obsahuje zadaný prvek. |
obsahuje vše | Boolean containsAll (kolekce c) | Zkontroluje, zda vektor obsahuje všechny prvky přítomné v dané kolekci. |
copyInto | Zrušit copyInto (Object () anArray) | Zkopíruje vektorové prvky do daného pole. |
ElementAt | E ElementAt (int index) | Vrátí vektorový prvek v zadaném indexu. |
Elementy | Enumerationelements () | Vrátí vyjmenované komponenty pro vektor. |
zajistit kapacitu | Zrušit zajištění kapacity (int minCapacity) | Zvyšuje kapacitu vektoru tak, aby splňoval stanovenou minimální kapacitu. |
Název metody | Prototyp | Popis |
---|---|---|
insertElementAt | Void insertElementAt (E obj, int index) | Vloží daný objekt do vektoru v daném indexu. |
Rovná se | Boolean se rovná (objekt o) | Porovná aktuální vektor se zadaným vektorem a zkontroluje, zda jsou stejné. |
firstElement | E firstElement () | Vrátí první prvek vektoru v indexu 0. |
Dostat | E get (int index) | Vrátí prvek ve vektoru v zadaném indexu. |
hashCode | int hashCode () | Vrátí hodnotu hash kódu pro Vector. |
indexOf | int indexOf (Objekt o) | najde index prvního výskytu daného prvku ve vektoru; -1, pokud prvek není ve vektoru přítomen. |
int indexOf (Objekt o, int index) | Vyhledá vektor z daného indexu ve směru dopředu pro zadaný prvek; vrátí index, pokud je prvek nalezen, jinak -1, pokud prvek není nalezen. | |
je prázdný | Boolean isEmpty () | Zkontroluje, zda je vektor prázdný. |
Iterátor | Iteratoriterator () | Vrátí iterátor, který se používá k procházení prvky vektoru. |
lastElement | E lastElement () | Vrátí poslední prvek vektoru. |
lastIndexOf | Int lastIndexOf (objekt o) | Hledá ve vektoru poslední výskyt daného prvku a vrací index, nebo vrací -1 prvek nebyl nalezen. |
Int lastIndexOf (Objekt o, int index) | Spustí hledání posledního výskytu daného prvku z daného indexu zpět. Vrátí index, pokud je prvek nalezen, jinak vrátí -1. | |
listIterator | ListIteratorlistIterator () | Vrátí iterátor seznamu nad prvky vektoru. |
ListIteratorlistIterator (int index) | Vrátí iterátor seznamu nad vektorovými prvky počínaje od daného indexu. |
Název metody | Prototyp | Popis |
---|---|---|
removeRange | protected void removeRange (int fromIndex, int toIndex) | Odstraní všechny prvky z vektoru v daném rozsahu od fromIndex (včetně), totoIndex (exkluzivní). |
Odstranit | E remove (int index) | Odstraní prvek z daného indexu z vektoru. |
Boolean remove (Objekt o) | Odstraní první výskyt daného prvku z vektoru. Pokud prvek není přítomen, s vektorem se nic nestane | |
odebrat všechny | Boolean removeAll (kolekce c) | Odstraní všechny prvky z vektoru, které jsou přítomny v dané kolekci. |
void removeAll Elements () | Odstraní všechny vektorové prvky, čímž se zmenší na nulu. | |
removeElement | Boolean removeElement (Object obj) | Odebere první výskyt daného prvku z vektoru. |
void removeElementAt (int index) | Odstraní prvek u daného indexu. | |
zachovat vše | Boolean keepAll (kolekce c) | Na rozdíl od metody „removeAll“ si metoda keepAll zachovává prvky ve Vektoru, které odpovídají prvkům v zadané Kolekci. |
soubor | Sada E (int index, prvek E) | Nastaví hodnotu na daném indexu s novým poskytnutým prvkem. |
Sada neplatných prvků ElementAt (E obj, int index) | Nastaví dané prvky na daný index. | |
setSize | Void setSize (int newSize) | Nastaví danou velikost tohoto vektoru. |
Velikost | int velikost () | Vrátí počet prvků v tomto vektoru nebo délku vektoru. |
subList | ListsubList (intfromIndex, inttoIndex) | Vrátí zobrazení nebo podřízený seznam vektoru v rozsahu od fromIndex do toIndex. |
toArray | Objekt () toArray () | Převede daný vektor na pole obsahující všechny vektorové prvky v daném pořadí. |
T () toArray (T () a) | Vrátí pole zadaného typu obsahující všechny vektorové prvky. | |
toString | String toString () | Vrátí řetězcové vyjádření vektoru. |
trimToSize | void trimToSize () | Ořízne vektor, aby se přizpůsobil aktuální velikosti. |
Vektorové implementace
Následující program Java demonstruje použití všech výše popsaných metod konstruktoru.
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); } }
Výstup:
pokročilé otázky v rozhovoru pro C ++
Výše uvedený program obsahuje čtyři vektory. První v1 je vytvořen pomocí výchozího konstruktoru. Druhý Vector v2 je vytvořen s počáteční kapacitou 20. Pak je do v2 přidáno několik prvků. Třetí Vektor je vytvořen s počáteční kapacitou 30 a přírůstkem 10.
Dále vytvoříme ArrayList a vytvoříme čtvrtý Vector v4 s ArrayList jako argumentem. Nakonec zobrazíme obsah každého z těchto vektorů.
Poznamenejte si obsah čtvrtého Vector v4. Jak jsme poskytli ArrayList jako argument, obsah ArrayList se stal obsahem v4.
Kompletní vektorový příklad
Nyní provedeme ještě další program, který bude předvést vytvoření vektorů, přidat k nim prvky a zobrazit jejich obsah.
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)); } }
Výstup:
Vezměme si další vektorový příklad. V tomto programu budeme použijte řetězcový vektor . S tímto vektorem manipulujeme přidáním prvků a poté vytiskneme jeho velikost a kapacitu.
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() + ' '); } }
Výstup:
Třídit vektor
Vektor můžete také řadit podle konkrétního pořadí. Pro třídění Vectoru musíte použít metodu Collections.sort () prostředí Java Collections Framework.
Následující příklad ukazuje vektorové třídění.
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); } }
Výstup:
Výše uvedený program vytvoří Vektor lichých čísel. Poté se pomocí metody Collections.sort () vektor roztřídí.
2D (dvourozměrný) vektor
2d Vektor je Vektor, který má každý ze svých prvků jako Vektor. Lze jej také označit jako „Vektor vektorů“.
Níže uvedený příklad ukazuje 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 Výstup:

Ve výše uvedeném programu máme Vektor čtyř prvků. Potom deklarujeme další vektor a přidáme předchozí vektor jako prvek do druhého vektoru. Všimněte si způsobu přístupu k prvkům vektoru. Vytvořte smyčku for a můžete usoudit, že první prvek vnějšího vektoru (v indexu 0) je první nebo vnitřní vektor.
Ve smyčce tedy udržujeme index vnějšího vektoru jako 0 a procházíme vnitřním vektorem, abychom zobrazili všechny prvky.
Převést vektor na pole
Uvažujme následující příklad převodu Vektoru na pole. K převodu Vectoru na Array používáme metodu ‚toArray 'třídy Vector.
V následujícím příkladu programování , deklarujeme řetězec Vector a přidáme k němu prvky. Potom pomocí metody toArray třídy Vector převedeme Vector na pole String předáním objektu pole řetězce jako argumentu.
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 + ' '); } } }
Výstup:

Vector vs Array
Níže jsou uvedeny některé rozdíly mezi vektorem a polem.
Vektor Pole Při zvýšení kapacity si vyhrazuje další úložiště. Nevyhradí si žádné další úložiště. Vektor je dynamický a jeho velikost se při přidávání nebo odebírání prvků zvětšuje a zmenšuje. Pole jsou statická a jeho velikost zůstává po deklarování pevná. Vektory mohou ukládat pouze objekty. Pole mohou ukládat primitivní typy i objekty. Poskytuje metodu size () pro určení velikosti. Poskytuje vlastnost délky k určení délky. Žádné koncepční rozměry, ale lze je vytvořit jako vektor vektorů, obvykle nazývaný 2D vektor. Pole podporují rozměry. Vektor je synchronizován. Pole není synchronizováno. Vektor je pomalejší než pole. Pole je rychlejší. Zajišťuje bezpečnost typu podporou generik. Žádná obecná podpora.
Vektor vs ArrayList
Tato část pojednává o rozdílech mezi Vector a ArrayList v Javě.
Vektor ArrayList Vektor má velikost přírůstku, pomocí které lze velikost vektoru zvětšit. ArrayList neposkytuje velikost přírůstku. K dispozici od počáteční verze Javy (verze JDK 1.0). Představeno v Javě od JDK 1.2 Vector je starší třída Java. ArrayList je součástí Java Collections Framework. Vektor dosáhne své kapacity dvojnásobné velikosti. Po dosažení kapacity ArrayList naroste o polovinu velikosti. Vektorové metody jsou synchronizovány. ArrayList není synchronizován. Vector používá pro procházení Enumerator a Iterator. ArrayList používá pouze Iterator. Vektorové operace jsou pomalejší. ArrayList je rychlejší. Vektor je bezpečný pro vlákna, což znamená, že použití Vektoru z více vláken je povoleno a je bezpečné. ArrayList není bezpečný pro vlákna.
Často kladené otázky
Otázka č. 1) Co je vektor v Javě?
Odpovědět: V Javě lze vektor definovat jako pěstitelnou řadu objektů. Podobně jako u polí lze k vektorovým prvkům přistupovat také pomocí indexů.
Otázka 2) Je vektor objednán v Javě?
Odpovědět: Ano. Vektor je uspořádán a udržuje pořadí vkládání prvků.
Otázka č. 3) Je Vector v Java bezpečný?
Odpovědět: Ano. V Javě je třída Vector bezpečná pro vlákna. Vzhledem k tomu, že je třída Vector synchronizována, je bezpečná pro vlákna, tj. Můžete použít třídu Vector z více vláken a je bezpečná.
Otázka č. 4) Proč používáme v Javě vektor?
Odpovědět: Nejdůležitějším důvodem, proč se Vector v Javě používá, je to, že se Vector automaticky zvětšuje a zmenšuje. Jsou dynamické, kvůli čemuž jsou upřednostňovány před poli.
Otázka č. 5) Co je lepší - ArrayList nebo vektor?
Odpovědět: Výkonově výhodný ArrayList je ve srovnání s Vectorem rychlejší, protože Vector je synchronizován a zpomaluje ho.
Závěr
V tomto kurzu jsme začali s datovou strukturou Vector v Javě. Vektory jsou téměř podobné poli, ve kterém se k vektorovým prvkům přistupuje pomocí známých indexů. Vektory se nazývají dynamické pole a na rozdíl od polí se velikost Vektoru automaticky zvětšuje a zmenšuje.
Vektory také mají funkce kapacity a přírůstku, které lze použít k vytvoření a rezervování dalšího úložiště pro budoucí přírůstky. Vector je starší třída v java.util balíčku Java a je synchronizovaná a bezpečná pro vlákna.
Proto bychom měli upřednostňovat vektory, když potřebujeme dynamickou velikost, a také když pracujeme v prostředí s více vlákny.
=> Navštivte zde exkluzivní sérii výukových programů Java.
Doporučené čtení
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- Výukový program Java Reflection s příklady
- Výukový program pro rozhraní Java a abstraktní třídu s příklady
- Jagged Array In Java - výukový program s příklady
- Výukový program Java Array Length s příklady kódu
- Jak řadit pole v Javě - návod s příklady
- Java „toto“ klíčové slovo: Výukový program s příklady kódu
- Modifikátory přístupu v Javě - výuka s příklady