Wektory w to jedne z najczęściej używanych struktur danych w świecie programowania.Wszyscy to wiemy Tablice to struktury danych, które przechowują dane w sposób liniowy. Wektory również przechowują dane w sposób liniowy, ale w przeciwieństwie do tablic nie mają stałego rozmiaru. Zamiast tego ich rozmiar można zwiększyć na żądanie.
Klasa Vector jest klasą potomną AbstractList klasa i włącza Lista .Aby użyć wektorów, musimy najpierw zaimportować klasę Vector z pakietu java.util:
import java.util.Vector
W tym artykule omówimy następujące pojęcia wektorów:
- Zalety Vector w Javie
- Jak uzyskać dostęp do elementów w wektorze?
- Konstruktorzy wektorów
- Alokacja pamięci wektorów
- Metody w wektorach
Zacznijmy!
Korzyść s wektora w Javie
- Właściwość posiadania rozmiaru dynamicznego jest bardzo przydatna, ponieważ pozwala uniknąć marnotrawstwa pamięci w przypadku, gdy nie znamy rozmiaru struktura danych w momencie zgłoszenia.
- Kiedy chcemy zmienić rozmiar naszej struktury danych w środku programu, wektory mogą okazać się bardzo przydatne.
Właściwość posiadania rozmiaru dynamicznego nie jest unikalna dla wektorów w Javie. Inna struktura danych, znana jako ArrayList, również pokazuje właściwość posiadania rozmiaru dynamicznego. Jednak wektory różnią się od ArrayLists z kilku powodów:
- Po pierwsze, wektory są zsynchronizowane, co daje mu przewagę w porównaniu do programów, ponieważ istnieje ryzyko uszkodzenia danych.
- Po drugie, wektory mają pewne starsze funkcje, które można zaimplementować tylko na wektorach, a nie na ArrayLists.
Jak uzyskać dostęp do elementów w wektorze
Możemy uzyskać dostęp do członków danych po prostu używając indeksu elementu, tak jak uzyskujemy dostęp do elementów w Arrays.
Przykład- Jeśli chcemy uzyskać dostęp do trzeciego elementu w wektorze v, nazywamy go po prostu v [3].
Wektory Konstruktorzy
Poniżej wymienione są różne odmiany wektora konstruktorzy Dostępne do użycia:
- Wektor (int initialCapacity, int Increment) - Konstruuje wektor z podaną wartością initialCapacity i jego przyrostem rozmiaru.
- Wektor (int initialCapacity) - Konstruuje pusty wektor z podaną wartością initialCapacity. W tym przypadku Przyrost wynosi zero.
- Wektor() - Konstruuje domyślny wektor pojemności 10.
- Wektor (kolekcja c) - Konstruuje wektor z podaną kolekcją, kolejność elementów jest taka sama, jak zwracana przez iterator kolekcji.
W wektorach są również trzy chronione parametry
- Int pojemność Wzrost () - Automatycznie zwiększa pojemność wektora, gdy rozmiar staje się większy niż pojemność.
- Int elementCount () - podaj liczbę elementów w wektorze
- Object [] elementData () - tablica, w której przechowywane są elementy wektora
Najczęstsze błędy w deklaracji wektorów
- Wektor rzuca IllegalArgumentException jeśli InitialSize zdefiniowanego wektora jest ujemna.
- Jeśli określona kolekcja jest null, zgłasza NullPointerException
Uwaga:
- Jeśli przyrost wektora nie jest określony, jego pojemność będzie wynosićpodwajana w każdym cyklu przyrostowym.
- Pojemność wektora nie może być mniejsza od rozmiaru, może być równa.
Rozważmy przykład inicjalizacji konstruktorów wektorów.
Przykład: inicjalizacja konstruktorów wektorów
/ Kod Java ilustrujący konstruktory wektorów import java.util. * Public class Main {public static void main (String [] args) {// utwórz domyślny wektor Vector v1 = new Vector () // utwórz wektor o podanej wielkości Vector v2 = new Vector (20) // stwórz wektor o podanym rozmiarze i inkrementacji Vector v3 = new Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // stwórz wektor o podanym kolekcja Vector v4 = new Vector (v2) System.out.println ('Vector v1 pojemności' + v1.capacity ()) System.out.println ('Vector v2 pojemności' + v2.capacity ()) System.out .println ('Vector v3 pojemności' + v3.capacity ()) System.out.println ('Vector v4 pojemności' + v4.capacity ())}
Alokacja pamięci wektorów
Do tej pory musieliście zrozumieć, że wektory nie mają stałego rozmiaru, zamiast tego mają możliwość dynamicznej zmiany rozmiaru. Można by pomyśleć, że wektory przydzielają nieokreśloną, długą przestrzeń do przechowywania obiektów. Ale tak nie jest. Wektory mogą zmieniać swój rozmiar na podstawie dwóch pól „capacity” i „capacityIncrement”. Początkowo przy zadeklarowaniu wektora przydzielany jest rozmiar równy polu „zdolność”. Możemy wstawić elementy równe pojemności. Ale gdy tylko zostanie wstawiony następny element, zwiększy rozmiar tablicy o rozmiar „capacityIncrement”. Dzięki temu jest w stanie dynamicznie zmieniać swój rozmiar.
Dla domyślny konstruktor , pojemność jest podwajana, gdy pojemność jest pełna i trzeba wstawić nowy element.
typy funkcji w sql
Przykład - Załóżmy, że mamy wektor o pojemności początkowej 5 i capacityIncrement 2, więc początkowy rozmiar wektora to 5 elementów. Wstawiamy po kolei 5 elementów do tego wektora, czyli 1,2,3,4,5. Kiedy spróbujemy wstawić inny element do wektora, a mianowicie 6, rozmiar wektora będzie zwiększany o 2. Stąd rozmiar wektora wynosi teraz 7. Zatem wektor łatwo dostosowuje swój rozmiar zgodnie z nr. elementów.
Inną interesującą kwestią jest to, że w przeciwieństwie do tablic, wektory nie zawierają rzeczywistych obiektów, a jedynie odniesienia do obiektów. W związku z tym pozwala na przechowywanie obiektów o różnych typach danych w tym samym wektorze.
Metody w wektorze
Rzućmy okiem na kilka bardzo często używanych metod wektorowych.
- Boolean add (Object o) - Dołącza element na końcu wektora.
// Kod Java pokazujący logiczną metodę add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (1 ) // Dodaje 1 na końcu listy v.add ('Java') // Dodaje 'Java' na końcu listy v.add ('is') // Dodaje 'is' na końcu list v.add ('Fun') // Dodaje 'Fun' na końcu listy System.out.println ('The vector is' + v)}}
Wynik
- Void add (int Index, E element) - Dodaje dany element pod określonym indeksem w wektorze
// Kod Java pokazujący metodę void add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (0 , 1) // Dodaje 1 do indeksu 0 v.add (1, 'Java') // Dodaje 'Java' do indeksu 1 v.add (2, 'is') // Dodaje 'is' do indeksu 2 v.add (3, 'Fun') // Dodaje 'Fun' do indeksu 3 v.add (4, '!!!') // Dodaje 'Fun' do indeksu 4 System.out.println (' Wektor to „+ v)}}
Wynik
- Boolean Remove (obiekt o) - Usuwa usunąć element o podanym indeksie w wektorze
// Kod Java pokazujący metodę logiczną remove () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (1 ) // Dodaje 1 na końcu listy v.add ('Java') // Dodaje 'Java' na końcu listy v.add ('is') // Dodaje 'is' na końcu list v.add ('Fun') // Dodaje 'Fun' na końcu listy System.out.println ('Vector before remove' + v) v.remove (1) System.out.println ('Vector after usunięcie '+ v)}}
Wynik
- Boolean removeElement ( Obiekt obj) - Usuwa element według jego nazwy obj (nie według numeru indeksu)
// Kod Java pokazujący metodę removeElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (1) // Dodaje 1 na końcu listy v.add ('Java') // Dodaje 'Java' na końcu listy v.add ('is') // Dodaje 'is' na końcu listy v.add ('Fun') // Dodaje 'Fun' na końcu listy System.out.println ('Vector before remove' + v) v.removeElement ('Java') System.out.println ('Vector po usunięciu '+ v)}}
Wynik
- Rozmiar int () - Zwraca rozmiar wektora.
// Kod Java pokazujący metodę size () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (0, 1) // Dodaje 1 do indeksu 0 v.add (1, 'Java') // Dodaje 'Java' do indeksu 1 v.add (2, 'is') // Dodaje 'is' do indeksu 2 v.add (3, 'Fun') // Dodaje 'Fun' do indeksu 3 System.out.println ('Rozmiar wektora to' + v.size ())}}
Wynik
- Int. Pojemność () - Zwraca pojemność wektora
// Kod Java pokazujący metodę capacity () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (0, 1) // Dodaje 1 do indeksu 0 v.add (1, 'Java') // Dodaje 'Java' do indeksu 1 v.add (2, 'is') // Dodaje 'is' do indeksu 2 v.add (3, 'Fun') // Dodaje 'Fun' do indeksu 3 System.out.println ('Pojemność wektora to' + v.capacity ())}}
Wynik
- Obiekt get (indeks int) - Zwraca element na podanej pozycji w wektorze
// Kod Java pokazujący metodę get () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (1) // Dodaje 1 na końcu listy v.add ('Java') // Dodaje 'Java' na końcu listy v.add ('is') // Dodaje 'is' na końcu listy v.add ('Fun') // Dodaje 'Fun' na końcu listy System.out.println ('Element pod indeksem 1 to' + v.get (1))}}
Wynik
- Object firstElement () - Zwraca pierwszy element
// Kod Java pokazujący metodę firstElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (1) // Dodaje 1 na końcu listy v.add ('Java') // Dodaje 'Java' na końcu listy v.add ('is') // Dodaje 'is' na końcu listy v.add ('Fun') // Dodaje 'Fun' na końcu listy System.out.println ('Pierwszy element to' + v.firstElement ())}}
Wynik
- Obiekt lastElement () - Zwraca ostatni element
// Kod Java pokazujący metodę lastElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (1) // Dodaje 1 na końcu listy v.add ('Java') // Dodaje 'Java' na końcu listy v.add ('is') // Dodaje 'is' na końcu listy v.add ('Fun') // Dodaje 'Fun' na końcu listy System.out.println ('Ostatni element to' + v.lastElement ())}}
Wynik
- Boolean równa się (Object o) - Porównuje wektor z określonym obiektem pod kątem równości. Zwraca prawdę, jeśli wszystkie elementy są prawdziwe w odpowiadających im indeksach
// Kod Java pokazujący metodę logiczną equals () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor Vector vcopy = new Vector () v.add (1) // Dodaje 1 na końcu listy v.add ('Java') // Dodaje 'Java' na końcu listy v.add ('is') // Dodaje ' is 'na końcu listy v.add (' Fun ') // Dodaje' Fun 'na końcu listy vcopy.add (0,1) // Dodaje 1 do indeksu 0 vcopy.add (1, 'Java') // Dodaje 'Java' do indeksu 1 vcopy.add (2, 'is') // Dodaje 'is' do indeksu 2 vcopy.add (3, 'Fun') // Dodaje 'Fun' pod indeksem 3 vcopy.add (4, '!!!') // Dodaje 'Fun' pod indeksem 4 if (v.equals (vcopy)) System.out.println ('Oba wektory są równe') else System .out.println ('Wektory nie są równe')}}
Wynik
- Void trimtosize () - Ta metoda eliminuje dodatkową pojemność i utrzymuje pojemność tylko do przechowywania elementów, tj. Równą rozmiarowi
// Kod Java pokazujący metodę trimToSize () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tworzy domyślny wektor v.add (0, 1) // Dodaje 1 do indeksu 0 v.add (1, 'Java') // Dodaje 'Java' do indeksu 1 v.add (2, 'is') // Dodaje 'is' do indeksu 2 v.add (3, 'Fun') // Dodaje 'Fun' do indeksu 3 System.out.println ('Pojemność wektora to' + v.capacity ()) v.trimToSize () System.out.println ( 'Pojemność wektora to' + v.capacity ())}}
Wynik
Inne ważne metody
Do tej pory musisz mieć dobry pomysł na pracę z wektorami. Jeśli chcesz poznać więcej metod wektorowych, spójrz na poniższą tabelę.
Nazwa metody | Funkcja metody |
Boolean isEmpty () | sprawdza, czy elementy istnieją, czy nie |
Boolean zawiera (obiekt o) | używane do sprawdzania istnienia określonego elementu, powiedzmy o |
int indexOf (Object o) | Zwraca indeks elementu o |
void removeRange (int s, int e) | usuwa elementy z wektora zaczynające się od s a kończące się na (e-1) |
void clear () | usuwa wszystkie elementy jak się uczyć pl sql |
void sureCapacity (int c) | Zwiększa pojemność o ok |
void setSize (int s) | Ustawia rozmiar na s. Jeśli rozmiar s>, dodatkowa pojemność jest wypełniana wartościami null. Jeśli s |
Object elementAt (int a) | zwraca element istniejący pod numerem indeksu a |
Zestaw obiektów (int a, Object o) | zamienia element znajdujący się w indeksie a na dany element o |
Obiekt [] toArray () | zwraca tablicę zawierającą te same elementy, co wektor |
Klon obiektu () | Obiekt wektorowy jest kopiowany |
Boolean addAll (kolekcja c) | dodaje wszystkie elementy Collection c do wektora |
Boolean addAll (int a, Collection c) | wstawia wszystkie elementy kolekcji c do wektora o określonym indeksie a |
Boolean retainAll (kolekcja c) | zachowuje wszystkie elementy w wektorze, które również istnieją w kolekcji c |
Lista subList (int s, int e) | zwraca elementy, jako obiekt List, zaczynając od s i kończąc na (e-1) z wektora. |
Jak każda dobra rzecz dobiega końca, tak i nasz blog o wektorach jest w formacie . Mamy nadzieję, że udało nam się omówić wszystkie aspekty wektorów Java na tym blogu i zebrać trochę wiedzy na temat wektorów.
Upewnij się, że ćwiczysz jak najwięcej i cofnij swoje doświadczenie.
Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Jesteśmy tutaj, aby pomóc Ci na każdym etapie Twojej podróży, aby zostać oprócz tych pytań do wywiadu Java, opracowaliśmy program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w tym „Wektory w Javie” artykuł, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.