Vector în Java | Clasă vectorială Java cu exemple

Publicat: 2021-05-26

În programare, una dintre cele mai frecvent utilizate structuri de date este Vector în Java. Matricele sunt structuri de date statice care pot stoca date liniar. În mod similar, vector în java stochează datele liniar, dar nu sunt limitate la o dimensiune fixă. În schimb, dimensiunea sa poate crește sau micșora conform cerințelor. Clasa părinte este clasa AbstractList și este implementată pe List Interface.

Înainte de a începe să utilizați vectori, importați-i din pachetul java.util.package după cum urmează:

import java.util.Vector

Cuprins

Declararea și evaluarea elementelor unui vector

Iată cum este declarat un vector în java:

Clasa publică Vector<V> extinde AbstractList<V>

implementează List<V>, RandomAccess, Cloneable, Serializable

Aici, V este tipul de element care poate fi int, string, char etc.

Așa cum accesăm membrii de date în matrice, putem face asta și în vectori, folosind indexul elementului. De exemplu, al doilea element al Vectorului E poate fi accesat ca E[2].

Câteva erori comune făcute la declararea unui vector în java:

  • O excepție IllegalArgumentException este aruncată dacă dimensiunea inițială a vectorului este o valoare negativă
  • O excepție NullPointerException este aruncată dacă colecția specificată este nulă
  • Mărimea vectorului este mai mică sau egală cu capacitatea vectorului
  • Capacitatea este dublată în fiecare ciclu de creștere dacă nu este specificată creșterea vectorială

Constructorii

1. Vector (int initialCapacity, int Increment)

Acest lucru creează un vector în java cu o capacitate inițială așa cum este specificată, iar incrementul este de asemenea specificat. Cu increment, este specificat numărul de elemente alocate de fiecare dată când vectorul este redimensionat în sus.

Sintaxă: Vector<V> e = new Vector<V>(int initialCapacity, int Increment);

2. Vector(int initialCapacity)

Acesta creează un vector în java cu o capacitate inițială egală cu dimensiunea specificată.

Sintaxă: Vector<V> e = new Vector<V>(int initialCapacity);

3. Vector ()

Acesta creează un vector în java cu o capacitate implicită inițială de 10.

Sintaxă: Vector<V> e = nou Vector<V>();

4. Vector (Colecția c)

Se creează un vector în java ale cărui elemente sunt cele ale colecției c.

Sintaxă: Vector<V> e = vector nou<V>(Colecția c);

Iată un exemplu pentru a demonstra crearea și utilizarea unui vector în java:

Cod

import java.util.*;

clasă publică principală{

public static void main(String[] args)

{

// Creați un vector implicit

Vector a = vector nou();

// Creați un vector cu dimensiunea specificată

Vector b = vector nou (20);

// Creați un vector cu dimensiunea și creșterea specificate

Vector c = vector nou(30,10);

b.add(100);

b.add(200);

b.add(300);

// Creați un vector cu o colecție specificată

Vector d = vector nou (b)

System.out.println(„Vector a de capacitate” + a.capacitate());

System.out.println(“Vector b de capacitate” + b.capacitate());

System.out.println(“Vector c de capacitate” + c.capacitate());

System.out.println(“Vector d de capacitate” + d.capacitate());

}}

Ieșire

Notă: .capacity() este folosit pentru a returna capacitatea vectorului.

Un vector în java are trei parametri protejați, după cum urmează:

1. Int elementCount() - Indică numărul de elemente pe care le conține un vector

2. Int capcityIncremen() - Când dimensiunea vectorului devine mai mare decât capacitatea, capacitatea este mărită automat cu aceasta.

3. Object[] elementData()- Elementele vectorului sunt stocate în matrice.

Metode

Iată câteva metode frecvent utilizate de vector în java:

1. Adăugați elemente

Boolean add(Object o)- Un element este atașat la sfârșitul vectorului

Void add( int index V element) - Elementul dat este adăugat la indexul specificat în vector

Cod pentru adăugarea elementelor în Vector în java:

import java.util.*;

import java.io.*;

clasă publică AddElementsToVector {

public static void main(String[] arg)

{

// Creați un vector implicit

Vector a = vector nou();

// Adăugarea elementelor folosind metoda add().

a.adăugați(1);

a.adăugați(2);

a.add(„vect”);

a.add(„pentru”);

a.adăugați(3);

System.out.println(„Vectorul a este ” + a);

// Creați un vector generic

Vector<Integer> b = vector nou<Integer>();

b.adăugați(0);

b.adăugați(1);

b.adăugați(2);

System.out.println(„Vectorul b este ” + b);

}

}

Ieșire

2. Eliminați elemente

Boolean Remove(obiect o) – folosit pentru a elimina elementul la indexul specificat în vector

Când elementul este eliminat, toate elementele sunt deplasate spre stânga pentru a umple spațiile; apoi indicii sunt actualizați.

Cod pentru a ilustra eliminarea elementelor din vector în java:

import java.util.*;

import java.io.*;

clasă publică Eliminați {

public static void main(String[] arg)

{

// Creați un vector implicit

Vector a = vector nou();

// Adăugarea elementelor folosind metoda add().

a.adăugați(1);

a.adăugați(2);

a.add(„vect”);

a.add(„pentru”);

a.adăugați(4);

// Eliminați elementul

a.eliminare(2);

// Verifica

System.out.println(„după eliminare: ” + a);

}

}

Ieșire

Checkout: Cum să faci o carieră de succes în Java?

3. Schimbați elemente

Metoda set () poate fi folosită pentru a schimba elementul după adăugarea elementelor. Indicele elementului poate fi referit ca un vector este indexat. Această metodă preia indexul și elementul actualizat.

Cod pentru a schimba elementele în vector în java

import java.util.*;

Actualizare la clasă publică {

public static void main(Argumente șir[])

{

// Creați un vector gol

Vector<Integer> a = nou Vector<Integer>();

// Adăugați elemente

a.adăugați(1);

a.adăugați(2);

a.adăugați(3);

a.adăugați(10);

a.adăugați(20);

// Afișează

System.out.println(„Vector: ” + a);

// A inlocui

System.out.println(„Înlocuire”

+ a.set(0, 22));

System.out.println(„Înlocuirea „

+ a.set(4, 50));

// Afișează vectorul modificat

System.out.println(„Noul vector este:” + a);

}

}

Ieșire

4. Repetați Vectorul

Există mai multe moduri de a bucla printr-un vector. Una dintre ele este metoda get(). Iată un program pentru a repeta elementele dintr-un Vector în java:

import java.util.*;

clasă publică Iterare {

public static void main(Argumente șir[])

{

// creează o instanță de vector

Vector<String> a = vector nou<>();

// Adăugați elemente folosind metoda add().

a.add(„vector”);

a.add(„în”);

a.add(1, „java”);

// Folosește metoda Get și bucla for

pentru (int i = 0; i < a.size(); i++) {

System.out.print(a.get(i) + ” “);

}

System.out.println();

// Utilizați pentru fiecare buclă

pentru (String str: a)

System.out.print(str + ” “);

}

}

Ieșire

Citiți: Arhitectură și componente Java

Alte metode importante

  • Int size() – folosit pentru a returna dimensiunea vectorului
  • Object get(int index) – folosit pentru a returna elementul la poziția specificată în vector
  • Object firstElement() – folosit pentru a returna primul element al vectorului în java
  • Object lastElement() – folosit pentru a returna ultimul element al vectorului în java
  • Boolean equals(Object o) – folosit pentru a compara vectorul cu obiectul dat pentru egalitate. Returnează adevărat dacă toate elementele sunt adevărate la indicii lor respectivi
  • Void trimtosize() – folosit pentru a elimina capacitatea suplimentară și pentru a menține capacitatea egală cu dimensiunea

Mai multe despre vectori

  • Un vector în java este o structură de date dinamică care poate fi accesată folosind un index întreg.
  • Deși este similar cu ArrayList, este sincronizat, conținând unele metode vechi care nu sunt disponibile în cadrul de colecție.
  • Ordinea de inserare este menținută.
  • Este rar folosit într-un mediu fără fire.
  • Datorită sincronizării, vectorii au o performanță slabă în căutarea, adăugarea, actualizarea și ștergerea elementelor.
  • Iteratorii clasei vectoriale eșuează rapid și lansează ConcurrentModificationException în cazul modificării concurente.
  • O stivă este subclasa sa direct cunoscută.

Alocarea memoriei în vectori

După cum sa văzut mai sus, vectorii nu au o dimensiune definită. În schimb, un vector în java își poate schimba dimensiunea în mod dinamic. Se presupune că vectorii alocă spațiu nedefinit pentru a stoca elemente. Totuși, nu este așa. Mărimea vectorului este modificată pe baza a două câmpuri - „increment de capacitate” și „capacitate”.

Când un vector este declarat, este alocat un câmp „capacitate” egal cu dimensiunea și pot fi adăugate elemente egale cu capacitatea. De îndată ce următorul element este inserat, dimensiunea matricei este mărită cu dimensiunea „capacityIncrement”. Acest lucru oferă vectorului capacitatea de a-și schimba dimensiunea — capacitatea se dublează pentru un constructor implicit atunci când este inserat un nou element.

Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Avantajele Vector în Java

Dimensiunea dinamică a vectorilor evită risipa de memorie, iar dimensiunea structurii noastre de date poate fi schimbată oricând în mijlocul programului.

Atât vectorii, cât și ArrayLists sunt dinamice. Cu toate acestea, vectorii sunt mai avantajoși ca:

  • Vectorii sunt sincronizați.
  • Are unele funcții moștenite care nu pot fi implementate pe ArrayLists.

Concluzie

Un vector în Java este o matrice dinamică fără limită de dimensiune care face parte din cadrul Java Collection Framework începând cu Java 1.2. Am văzut diverși constructori și metode populare de vectori utilizate în acest blog. De asemenea, merită atenție faptul că clasa Vector ar trebui utilizată numai într-un mediu sigur pentru fire.

Dacă sunteți interesat să aflați mai multe despre Java, OOP și dezvoltarea de software full-stack, consultați programul Executive PG în Dezvoltare software de la upGrad și IIIT-B – Specializare în Dezvoltare Full Stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de instruire riguroasă, peste 9 proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Ce este un vector în Java?

Un vector este o structură de date în Java. După cum sugerează și numele, un vector este un fel de secvență de elemente. Utilizează o matrice dinamică care crește și se micșorează pe măsură ce este accesată. Are o metodă size() pentru a obține dimensiunea curentă a vectorului și o metodă capacity() pentru a obține capacitatea vectorului. Aceste două metode returnează valorile mai mari decât zero. Capacitatea vectorului este numărul de elemente care pot fi stocate în interiorul vectorului fără a fi nevoie să aloce o nouă matrice. Mărimea vectorului este numărul de elemente stocate în prezent în interiorul vectorului.

Care sunt avantajele vectorilor față de tablouri?

Matricele au dimensiuni fixe, ceea ce înseamnă că nu pot crește sau micșora după cum este necesar. Vectorii sunt implementați ca matrice redimensionabile dinamic, permițându-le să crească și să se micșoreze după cum este necesar. Acest lucru este util pentru creșterea constantă a datelor; de exemplu, un program care citește fișiere text linie cu linie va putea crește în tandem cu dimensiunea fișierului. Vectorii sunt în general mai eficienți decât tablourile. Acest lucru se datorează faptului că vectorii sunt implementați ca matrice de referințe (java.lang.Objects), în timp ce matricele sunt implementate ca matrice de obiecte.

Ce este ArrayList în Java?

Clasa ArrayList reprezintă o matrice dinamică. Poate crește după cum este necesar pentru a găzdui elemente noi. Matricea este implementată de fapt ca o listă de referințe la obiecte. Ori de câte ori trebuie creat un element, este disponibilă o referință la un nou obiect. Acest lucru este posibil datorită faptului că ArrayList este implementat ca o listă redimensionabilă dinamic. ArrayList moștenește majoritatea metodelor și câmpurilor sale din AbstractList. ArrayList este mai rapid decât o matrice, deoarece nu trebuie să creeze noi obiecte. Metodele de mutare care modifică dimensiunea matricei, cum ar fi adăugarea, setarea și eliminarea, sunt numite metode distructive, deoarece modifică permanent dimensiunea matricei.