what is java vector java vector class tutorial with examples
Ten samouczek wyjaśnia wszystko o strukturze danych wektorowych w języku Java z przykładami. Dowiesz się, jak tworzyć, inicjować, sortować i używać wektora Java w swoich programach:
Wektor można zdefiniować jako dynamiczną tablicę, która może rosnąć lub zmniejszać się samodzielnie, tj. Wektor będzie rósł, gdy zostanie do niego dodanych więcej elementów, i zmniejszy się, gdy elementy zostaną z niego usunięte.
To zachowanie jest inne niż w przypadku tablic, które są statyczne. Ale podobnie jak w przypadku tablic, dostęp do elementów wektorowych można uzyskać za pomocą indeksów całkowitych.
=> Zajrzyj tutaj, aby zobaczyć A-Z samouczków szkoleniowych Java tutaj.
Wektor można postrzegać jako podobny do innej struktury danych tablicy dynamicznej, ArrayList z wyjątkiem dwóch poniższych różnic:
- Wektor jest zsynchronizowany, tj. Wszystkie metody w Vector są oznaczone jako „zsynchronizowane”, a zatem po wywołaniu metody ta sama metoda nie może zostać wywołana, chyba że poprzednie wywołanie zostało zakończone.
- Klasa vector ma wiele metod, które nie są częścią struktury kolekcji, ale jej starszymi metodami.
Czego się nauczysz:
Klasa wektorowa Java
Klasa Vector jest częścią klasy „ java.util ”I implementuje interfejs List. Wektor to tablica obiektów lub wektor obiektów.
Poniżej podano deklarację klasy klasy Vector:
public class Vector extends Object implements List, Cloneable, Serializable
Jak pokazano powyżej, klasa Vector rozszerza „ java.lang.object ”I implementuje interfejsy List, Cloneable i Serializable.
Jak stworzyć wektor w Javie?
Obiekt Vector można utworzyć przy użyciu dowolnej z poniższych metod konstruktora Vector.
10 najlepszych witryn do oglądania anime
Prototyp konstruktora | Opis | |
---|---|---|
Jasny | Void clear () | Czyści wektor z jego elementów. |
wektor() | To jest domyślny konstruktor klasy Vector. Tworzy pusty wektor o rozmiarze 10. | |
wektor (int initialCapacity) | Ten przeciążony konstruktor tworzy pusty obiekt Vector o wartości capacity = initialCapacity. | |
wektor (int initialCapacity, int capacityIncrement) | Ta metoda konstruktora tworzy pusty obiekt Vector z określonymi wartościami initialCapacity i capacityIncrement. | |
Wektor (kolekcja c) | Obiekt Vector jest tworzony z elementami początkowymi z określonej kolekcji c. |
Przyjrzyjmy się każdemu z konstruktorów, aby zainicjować obiekty Vector.
Zainicjuj Vector
(i) Wektor ()
To jest domyślny konstruktor klasy Vector. Po wywołaniu tego konstruktora tworzony jest obiekt Vector o domyślnym rozmiarze 10.
Ogólna składnia tej metody to:
Obiekt wektorowy = new Vector ();
Na przykład,
Vector vec1 = new Vector ();
Powyższe stwierdzenie tworzy nowy wektor „vec1” o rozmiarze 10.
(ii) Wektor (int initialCapacity)
Przeciążony konstruktor klasy Vector przyjmuje argument „initialCapacity”. Ten konstruktor tworzy obiekt Vector o określonej pojemności.
Ogólna składnia metody to:
Obiekt wektorowy = nowy Vector (initialCapacity);
Na przykład,
Vector vec1 = new Vector (10);
Powyższa instrukcja programowania utworzy obiekt Vector „vec1” o pojemności 10, tj. Ten Vector może przechowywać do 10 elementów.
(iii) Wektor (int initialCapacity, int capacityIncrement)
To kolejny przeciążony konstruktor klasy Vector, który tworzy obiekt Vector o określonej pojemności początkowej i inkrementacji pojemności.
Ogólna składnia tej metody to:
Obiekt wektorowy = nowy Vector (initialCapacity, capacityIncrement);
Na przykład,
Vector vec1 = new Vector(5,10);
W powyższym stwierdzeniu początkowa pojemność Vector wynosi 5, a przyrost wynosi 10. Oznacza to, że 6thelement zostanie wstawiony do wektora, pojemność wektora zostanie zwiększona do 15 (5 + 10). Podobnie, gdy 16thzostanie wstawiony element, pojemność wektora Vector zostanie zwiększona do 25 (15 +10).
(iv) Wektor (Kolekcja c)
Ostatni przeciążony konstruktor klasy Vector przyjmuje wstępnie zdefiniowaną kolekcję jako argument i tworzy Vector ze wszystkimi elementami z tej kolekcji jako elementami.
Ogólna składnia to:
Obiekt wektorowy = nowy Wektor (Kolekcja c);
Na przykład,
Vector vec1 = new Vector(aList); where aList = {1,2,3,4,5};
Powyższa instrukcja utworzy wektor „vec1” z elementami początkowymi w postaci {1, 2, 3, 4, 5}.
Pamiętanie o tych wszystkich opisach pozwoli nam zaimplementować program Vector, aby lepiej zrozumieć te konstruktory.
Metody wektorowe w Javie
Poniżej przedstawiono metody obsługiwane przez klasę Vector w języku Java.
Nazwa metody | Prototyp | Opis |
---|---|---|
Dodaj | Boolean add (E e) | Dodaje dany element na koniec wektora. |
Void add (int index, E element) | Dodaj element do wektora o określonym indeksie. | |
dodać wszystko | Boolean addAll (kolekcja c) | Dodaje wszystkie elementy z podanej kolekcji na koniec wektora. |
Boolean addAll (indeks int, kolekcja c) | Dodaje wszystkie elementy w określonej kolekcji o określonym indeksie. | |
addElement | void addElement (E obj) | Dodaje określony element na końcu wektora, zwiększając rozmiar wektora. |
Pojemność | Int pojemność () | Zwraca aktualną pojemność wektora. |
Klonuj | Klon obiektu () | Klonuje wektor. |
Zawiera | Boolean zawiera (obiekt o) | Sprawdza, czy wektor zawiera określony element. |
zawiera wszystko | Boolean zawiera wszystko (kolekcja c) | Sprawdza, czy wektor zawiera wszystkie elementy obecne w danej kolekcji. |
copyInto | Void copyInto (Object () anArray) | Kopiuje elementy wektora do podanej tablicy. |
ElementAt | E ElementAt (indeks int) | Zwraca element wektora o określonym indeksie. |
Elementy | Enumerationelements () | Zwraca wyliczone składniki wektora. |
Zapewnij pojemność | Void sureCapacity (int minCapacity) | Zwiększa pojemność wektora, aby spełnić określoną minimalną pojemność. |
Nazwa metody | Prototyp | Opis |
---|---|---|
insertElementAt | Void insertElementAt (E obj, int index) | Wstawia dany obiekt do wektora o podanym indeksie. |
Równa się | Boolean równa się (Object o) | Porównuje bieżący wektor z określonym wektorem, aby sprawdzić, czy są równe. |
firstElement | E firstElement () | Zwraca pierwszy element wektora o indeksie 0. |
Otrzymać | E get (indeks int) | Zwraca element w wektorze o określonym indeksie. |
hashCode | int hashCode () | Zwraca wartość kodu skrótu dla Vector. |
indeks | int indexOf (Object o) | znajduje indeks pierwszego wystąpienia danego elementu w wektorze; -1, jeśli element nie jest obecny w wektorze. |
int indexOf (Object o, int index) | Przeszukuje wektor z podanego indeksu w kierunku do przodu dla określonego elementu; zwraca indeks, jeśli element zostanie znaleziony w przeciwnym razie -1, jeśli element nie zostanie znaleziony. | |
jest pusty | Boolean isEmpty () | Sprawdza, czy wektor jest pusty. |
Iterator | Iteratoriterator () | Zwraca iterator używany do przechodzenia przez elementy wektora. |
lastElement | E lastElement () | Zwraca ostatni element wektora. |
lastIndexOf | Int lastIndexOf (obiekt o) | Przeszukuje wektor pod kątem ostatniego wystąpienia danego elementu i zwraca indeks lub zwraca wartość -1, gdy element nie został znaleziony. |
Int lastIndexOf (obiekt o, indeks int) | Rozpoczyna wyszukiwanie ostatniego wystąpienia danego elementu od podanego indeksu wstecz. Zwraca indeks, jeśli znaleziono element, w przeciwnym razie zwraca -1. | |
listIterator | ListIteratorlistIterator () | Zwraca iterator listy po elementach wektora. |
ListIteratorlistIterator (indeks int) | Zwraca iterator listy dla elementów wektora, zaczynając od podanego indeksu. |
Nazwa metody | Prototyp | Opis |
---|---|---|
removeRange | protected void removeRange (int fromIndex, int toIndex) | Usuwa wszystkie elementy z wektora w podanym zakresie fromIndex (włącznie), totoIndex (wyłączne). |
Usunąć | E usuń (indeks int) | Usuwa element o podanym indeksie z wektora. |
Boolean remove (Object o) | Usuwa pierwsze wystąpienie danego elementu z wektora. Jeśli nie ma elementu, nic się nie dzieje z wektorem | |
Usuń wszystko | Boolean removeAll (kolekcja c) | Usuwa wszystkie elementy z wektora, które są obecne w danej kolekcji. |
void removeAll Elements () | Usuwa wszystkie elementy wektora, zmniejszając go w ten sposób do rozmiaru zero. | |
removeElement | Boolean removeElement (obiekt obj) | Usuwa pierwsze wystąpienie danego elementu z wektora. |
void removeElementAt (int index) | Usuwa element o podanym indeksie. | |
retainAll | Boolean retainAll (kolekcja c) | W przeciwieństwie do metody „removeAll” metoda retainAll zachowuje elementy wektora pasujące do elementów w określonej kolekcji. |
zestaw | Zbiór E (indeks int, element E) | Ustawia wartość dla danego indeksu z podanym nowym elementem. |
Void set ElementAt (E obj, int index) | Ustawia dane elementy pod podanym indeksem. | |
setSize | Void setSize (int newSize) | Ustawia podany rozmiar dla tego wektora. |
Rozmiar | rozmiar int () | Zwraca liczbę elementów w tym wektorze lub długość wektora. |
subList | ListsubList (intfromIndex, inttoIndex) | Zwraca widok lub listę podrzędną wektora z zakresu od fromIndex do toIndex. |
toArray | Obiekt () toArray () | Konwertuje dany wektor na tablicę zawierającą wszystkie elementy wektora w podanej kolejności. |
T () toArray (T () a) | Zwraca tablicę określonego typu zawierającą wszystkie elementy wektora. | |
toString | Ciąg toString () | Zwraca ciąg znaków reprezentujący wektor. |
trimToSize | void trimToSize () | Przycina wektor, aby dopasować go do bieżącego rozmiaru. |
Implementacja wektora
Poniższy program w języku Java demonstruje użycie wszystkich opisanych powyżej metod 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); } }
Wynik:
Powyższy program zawiera cztery wektory. Pierwsza wersja v1 jest tworzona za pomocą domyślnego konstruktora. Drugi Vector v2 jest tworzony z początkową pojemnością 20. Następnie kilka elementów jest dodawanych do v2. Trzeci wektor jest tworzony z początkową pojemnością 30 i przyrostem 10.
Następnie tworzymy ArrayList i czwarty Vector v4 z ArrayList jako argumentem. Na koniec wyświetlamy zawartość każdego z tych wektorów.
Zwróć uwagę na zawartość czwartego Vector v4. Ponieważ podaliśmy ArrayList jako argument, zawartość ArrayList stanie się treścią v4.
Kompletny przykład wektora
Teraz zaimplementujmy kolejny program, który to zrobi demonstrują tworzenie wektorów, dodając do nich elementy i wyświetlając ich zawartość.
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)); } }
Wynik:
Weźmy inny przykład wektora. W tym programie będziemy użyj wektora łańcucha . Manipulujemy tym wektorem, dodając elementy, a następnie drukujemy jego rozmiar i pojemność.
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() + ' '); } }
Wynik:
Sortuj wektor
Możesz także posortować wektor według określonej kolejności. Aby posortować wektor, należy użyć metody Collections.sort () środowiska Java Collections Framework.
Poniższy przykład przedstawia sortowanie wektorowe.
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); } }
Wynik:
Powyższy program tworzy wektor liczb nieparzystych. Następnie za pomocą metody Collections.sort () sortowany jest wektor.
najlepszy darmowy program do pobierania muzyki na PC
Wektor 2D (dwuwymiarowy)
Wektor 2d to wektor, który ma każdy element jako wektor. Można go również określić jako „wektor wektorów”.
Poniższy przykład ilustruje wektor 2D.
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 Wynik:

W powyższym programie mamy wektor złożony z czterech elementów. Następnie deklarujemy inny wektor i dodajemy poprzedni wektor jako element do drugiego wektora. Zwróć uwagę na sposób, w jaki uzyskuje się dostęp do elementów wektora. Z pętli for można wywnioskować, że pierwszy element wektora zewnętrznego (o indeksie 0) jest wektorem pierwszym lub wewnętrznym.
Tak więc w pętli utrzymujemy indeks zewnętrznego wektora jako 0 i przechodzimy przez wewnętrzny wektor, aby wyświetlić wszystkie elementy.
Konwertuj wektor na tablicę
Rozważmy następujący przykład konwersji Vector na tablicę. Aby przekonwertować Vector na Array, używamy metody „toArray” klasy Vector.
W poniższym przykładzie programowania , deklarujemy ciąg Vector i dodajemy do niego elementy. Następnie za pomocą metody toArray klasy Vector konwertujemy Vector na tablicę String, przekazując obiekt tablicy string jako argument.
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 + ' '); } } }
Wynik:

Wektor a tablica
Poniżej wymieniono niektóre różnice między wektorem a tablicą.
Wektor Szyk Rezerwuje dodatkowe miejsce na dane, gdy pojemność zostanie zwiększona. Nie rezerwuje dodatkowego miejsca na dane. Wektor jest dynamiczny, a jego rozmiar rośnie i kurczy się w miarę dodawania lub usuwania elementów. Tablice są statyczne, a ich rozmiar pozostaje stały po zadeklarowaniu. Wektory mogą przechowywać tylko obiekty. Tablice mogą przechowywać zarówno typy pierwotne, jak i obiekty. Udostępnia metodę size () do określenia rozmiaru. Zapewnia właściwość length w celu określenia długości. Brak wymiarów koncepcyjnych, ale można go utworzyć jako wektor wektorów, zwykle nazywany wektorem 2d. Tablice obsługują wymiary. Wektor jest zsynchronizowany. Tablica nie jest zsynchronizowana. Wektor jest wolniejszy niż tablica. Tablica jest szybsza. Zapewnia bezpieczeństwo typów, wspierając typy generyczne. Brak ogólnego wsparcia.
Wektor a ArrayList
W tej sekcji omówiono różnicę między Vector i ArrayList w Javie.
Wektor ArrayList Wektor ma wielkość przyrostu, za pomocą której można zwiększyć rozmiar wektora. ArrayList nie zapewnia rozmiaru przyrostu. Obecny od pierwszej wersji Java (wersja JDK 1.0). Wprowadzony w Javie od JDK 1.2 Vector to starsza klasa języka Java. ArrayList jest częścią środowiska Java Collections Framework. Po osiągnięciu pojemności Vector powiększa się dwukrotnie. Po osiągnięciu pojemności ArrayList rośnie o połowę. Metody wektorowe są zsynchronizowane. ArrayList nie jest zsynchronizowana. Wektor używa modułu Enumerator i Iterator do przechodzenia. ArrayList używa tylko Iteratora. Operacje wektorowe są wolniejsze. ArrayList działa szybciej. Wektor jest bezpieczny dla wątków, co oznacza, że używanie wektora z wielu wątków jest dozwolone i bezpieczne. ArrayList nie jest bezpieczna wątkowo.
Często Zadawane Pytania
Pytanie 1) Co to jest wektor w Javie?
Odpowiedź: W Javie wektor można zdefiniować jako rosnącą tablicę obiektów. Podobnie jak w przypadku tablic, do elementów Vector można również uzyskać dostęp za pomocą indeksów.
Pytanie 2) Czy wektor jest uporządkowany w Javie?
Odpowiedź: Tak. Vector jest zamawiany i utrzymuje kolejność wstawiania elementów.
Pytanie 3) Czy rozwiązanie Vector jest bezpieczne dla wątków w Javie?
Odpowiedź: Tak. W Javie klasa Vector jest bezpieczna dla wątków. Ponieważ klasa Vector jest zsynchronizowana, zapewnia bezpieczeństwo wątków, tj. Można używać klasy Vector z wielu wątków i jest to bezpieczne.
Pytanie 4) Dlaczego używamy wektorów w Javie?
Odpowiedź: Najważniejszym powodem, dla którego Vector jest używany w Javie, jest to, że Vector rośnie i kurczy się automatycznie. Są dynamiczne, przez co są preferowane w stosunku do tablic.
P # 5) Co jest lepsze - ArrayList czy wektor?
Odpowiedź: Pod względem wydajności ArrayList jest szybszy w porównaniu do Vector, ponieważ Vector jest zsynchronizowany i spowalnia.
Wniosek
W tym samouczku rozpoczęliśmy od struktury danych Vector w Javie. Wektory są prawie podobne do tablicy, w której dostęp do elementów Vector uzyskuje się za pomocą znanych indeksów. Wektory nazywane są dynamicznymi tablicami iw przeciwieństwie do tablic, rozmiar Vector rośnie i zmniejsza się automatycznie.
Wektory mają również pojemność i funkcje przyrostowe, które można wykorzystać do tworzenia i rezerwowania dodatkowej pamięci na przyszłe dodatki. Vector jest klasą starszą w pakiecie java.util języka Java i jest zsynchronizowana, a także zabezpieczona wątkami.
Dlatego powinniśmy preferować wektory, gdy potrzebujemy rozmiaru dynamicznego, a także podczas pracy w środowisku wielowątkowym.
=> Odwiedź tutaj ekskluzywną serię samouczków szkoleniowych Java.
rekomendowane lektury
- Samouczek JAVA dla początkujących: ponad 100 praktycznych samouczków wideo Java
- Samouczek dotyczący refleksji w języku Java z przykładami
- Interfejs Java i samouczek klasy abstrakcyjnej z przykładami
- Postrzępiona tablica w Javie - samouczek z przykładami
- Samouczek dotyczący długości tablicy w języku Java z przykładami kodu
- Jak posortować tablicę w Javie - samouczek z przykładami
- Słowo kluczowe „this” w języku Java: samouczek z przykładami kodu
- Modyfikatory dostępu w Javie - samouczek z przykładami