logo

Vektoru klase Java valodā

Vector klase īsteno paplašināmu objektu masīvu. Vektori ietilpst mantotās klasēs, taču tagad tas ir pilnībā saderīgs ar kolekcijām. Tas ir atrodams java.util pakotne un īstenot Saraksts interfeisu, lai mēs varētu izmantot visas saraksta saskarnes metodes, kā parādīts tālāk, šādi:

Vektoru klase Java valodā

  • Vector ievieš dinamisku masīvu, kas nozīmē, ka tas var augt vai sarukt pēc vajadzības. Tāpat kā masīvā, tajā ir komponenti, kuriem var piekļūt, izmantojot veselu skaitļu indeksu.
  • Tie ir ļoti līdzīgi ArrayList , bet Vector ir sinhronizēts, un tam ir dažas mantotas metodes, kuras savākšanas ietvars nesatur.
  • Tas arī uztur ievietošanas secību, piemēram, ArrayList. Tomēr to reti izmanto vidē, kurā nav pavedienu sinhronizēts , un tādēļ tas nodrošina sliktu veiktspēju, pievienojot, meklējot, dzēšot un atjauninot elementus.
  • Vector klases atgrieztie iteratori ir ātri atteici. Vienlaicīgas modifikācijas gadījumā tas neizdodas un izmet ConcurrentModificationException.

Sintakse:



public class Vector extends AbstractList implements List, RandomAccess, Cloneable, Serializable>

Šeit, UN ir elementa veids.

  • Tas pagarina AbstractList un ievieš Saraksts saskarnes.
  • Tas ievieš Serializable, Cloneable, Iterable, Collection, List, RandomAccess saskarnes.
  • Tieši zināmā apakšklase ir Kaudze .

Svarīgi punkti attiecībā uz vektora kapacitātes palielināšanu ir šādi:

Ja pieaugums ir norādīts, Vector paplašinās atbilstoši tam katrā piešķiršanas ciklā. Tomēr, ja pieaugums nav norādīts, vektora jauda tiek dubultota katrā piešķiršanas ciklā. Vector definē trīs aizsargāto datu dalībniekus:

  • iekšējā jaudaPieaugums: Satur pieauguma vērtību.
  • int elementCount: Tajā saglabāto elementu skaits pašlaik vektorā.
  • Objekta elementsDati[]: Masīvs, kurā atrodas vektors, tiek saglabāts tajā.

Bieži sastopamās kļūdas vektoru deklarācijā ir šādas seko :

  • Vektors iemet IllegalArgumentException ja definētā vektora InitialSize ir negatīvs.
  • Ja norādītā kolekcija ir nulle, tā izmet NullPointerException .

Konstruktori

1. Vektors(): Izveido noklusējuma vektoru, kura sākotnējā kapacitāte ir 10.

Vector v = new Vector();>

2. Vektors (int lielums): Izveido vektoru, kura sākotnējā kapacitāte ir norādīta pēc lieluma.

Vector v = new Vector(int size);>

3. Vektors (int lielums, int incr): Izveido vektoru, kura sākotnējā ietilpība ir norādīta pēc lieluma un inkrementu norāda ar incr. Tas norāda elementu skaitu, kas jāpiešķir katru reizi, kad vektora lielums tiek mainīts uz augšu.

aktieris ranbir kapoor vecums
Vector v = new Vector(int size, int incr);>

4. Vektors (c kolekcija): Izveido vektoru, kas satur kolekcijas c elementus.

Vector v = new Vector(Collection c);>

Metodes vektoru klasē

METODE

APRAKSTS

pievienot (un un) Pievieno norādīto elementu šī vektora beigām.
pievienot (indekss, E elements) Ievieto norādīto elementu norādītajā pozīcijā šajā vektorā.

addAll (kolekcija

pagarina E> c)

bash if paziņojums
Šī vektora beigām pievieno visus norādītās kolekcijas elementus tādā secībā, kādā tos atgriež norādītās kolekcijas iterators.

addAll(int indekss,

Kolekcija c)

Ievietojiet visus norādītās kolekcijas elementus šajā vektorā norādītajā vietā.
addElement(E obj) Pievieno norādīto komponentu šī vektora beigām, palielinot tā izmēru par vienu.
ietilpība () Atgriež šī vektora pašreizējo kapacitāti.
skaidrs () Noņem visus elementus no šī vektora.
klons () Atgriež šī vektora klonu.
satur (Objekts o) Atgriež patieso vērtību, ja šis vektors satur norādīto elementu.
satur visu (c kolekcija) Atgriež vērtību True, ja šajā vektorā ir visi norādītās kolekcijas elementi.
copyInto ( objekts [ ] anArray ) Kopē šī vektora komponentus norādītajā masīvā.
elementsAt(int indekss) Atgriež komponentu ar norādīto indeksu.
elementi () Atgriež šī vektora komponentu uzskaitījumu.
nodrošinātCapacity (int minCapacity) Ja nepieciešams, palielina šī vektora ietilpību, lai nodrošinātu, ka tajā var būt vismaz minimālās jaudas argumentā norādītais komponentu skaits.
vienāds (Objekts o) Vienlīdzības labad salīdzina norādīto objektu ar šo vektoru.
pirmais elements() Atgriež šī vektora pirmo komponentu (vienumu ar indeksu 0).

katram (patērētājs

super E> darbība)

Veic norādīto darbību katram iterable elementam, līdz visi elementi ir apstrādāti vai darbība rada izņēmumu.
iegūt (indekss) Atgriež elementu norādītajā pozīcijā šajā vektorā.
hashCode() Atgriež šī vektora jaucējkoda vērtību.
indexOf(Object o)

Atgriež norādītā elementa pirmās parādīšanās indeksu šajā vektorā,

vai -1, ja šis vektors nesatur elementu.

indexOf(Object o, int index) Atgriež norādītā elementa pirmās parādīšanās indeksu šajā vektorā, meklējot uz priekšu no indeksa, vai atgriež -1, ja elements nav atrasts.
insertElementAt(E obj, int index) Ievieto norādīto objektu kā komponentu šajā vektorā norādītajā indeksā.
ir tukšs() Pārbauda, ​​vai šim vektoram nav komponentu.
iterators () Atgriež iteratoru pār šī saraksta elementiem pareizā secībā.
pēdējais elements() Atgriež vektora pēdējo komponentu.
LastIndexOf(Object o)

Atgriež norādītā elementa pēdējās parādīšanās indeksu šajā vektorā,

vai -1, ja šis vektors nesatur elementu.

lastIndexOf(Object o, int index) Atgriež norādītā elementa pēdējā gadījuma indeksu šajā vektorā, meklējot atpakaļ no indeksa, vai atgriež -1, ja elements nav atrasts.
listIterator() Atgriež saraksta iteratoru virs šī saraksta elementiem (pareizā secībā).
listIterator(int index)

Atgriež saraksta iteratoru virs šī saraksta elementiem (pareizā secībā),

sākot no norādītās pozīcijas sarakstā.

noņemt(int indekss) Noņem elementu norādītajā pozīcijā šajā vektorā.
noņemt (Objekts o) Noņem norādītā elementa pirmo reizi šajā vektorā. Ja vektors nesatur elementu, tas nemainās.
noņemt visu (c kolekcija) Noņem no šī vektora visus tā elementus, kas ietverti norādītajā kolekcijā.
noņemt visus elementus() Noņem visus komponentus no šī vektora un iestata tā lielumu uz nulli.
noņemtElement (Objekta objekts) No šī vektora noņem argumenta pirmo (zemāko indeksu) gadījumu.
removeElementAt(int index) Dzēš komponentu norādītajā indeksā.
removeIf (predikātu filtrs) Noņem visus šīs kolekcijas elementus, kas atbilst norādītajam predikātam.

removeRange(int fromIndex,

prime bez koda java

int toIndex)

No šī saraksta tiek noņemti visi elementi, kuru indekss ir starp fromIndex, ieskaitot un toIndex, ekskluzīvs.
aizstāt visu (operators UnaryOperator)Aizstāj katru šī saraksta elementu ar operatora lietošanas rezultātu šim elementam.
paturēt visu (c kolekcija) Saglabā tikai elementus šajā vektorā, kas ietverti norādītajā kolekcijā.
kopa (indekss, E elements) Aizstāj elementu norādītajā pozīcijā šajā vektorā ar norādīto elementu.
setElementAt(E obj, int index) Iestata komponentu šī vektora norādītajā indeksā kā norādīto objektu.
setSize(int newSize) Iestata šī vektora izmēru.
Izmērs() Atgriež šī vektora komponentu skaitu.
kārtot (salīdzinājums c) Sakārto šo sarakstu atbilstoši norādītā Comparator radītajai secībai.
sadalītājs () Šī saraksta elementiem izveido vēlu saistošu un ātru atteices sadalītāju.
apakšsaraksts (int no indeksa, int uz indeksu) Atgriež skatu uz šī saraksta daļu starp fromIndex, ieskaitot un toIndex, ekskluzīvs.
toArray() Atgriež masīvu, kurā ir visi šī vektora elementi pareizā secībā.
toMasīvs(T[] a) Atgriež masīvu, kurā ir visi šī vektora elementi pareizā secībā; atgrieztā masīva izpildlaika veids ir norādītā masīva izpildlaika veids.
toString() Atgriež šī vektora virknes attēlojumu, kas satur katra elementa virknes attēlojumu.
apgriezt izmēru() Apgriež šī vektora kapacitāti līdz vektora pašreizējam izmēram.

Vispirms apspriedīsim un ieviesīsim, kā izveidot un izmantot vektoru, pirms sākam izmantot šīs klases metodes.

Piemērs:

Java
// Java Program to Demonstrate Working of Vector // Via Creating and Using It // Importing required classes import java.io.*; import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Size of the Vector int n = 5; // Declaring the Vector with // initial size n Vector v = jauns vektors (n); // Jaunu elementu pievienošana // vektora beigās (int i = 1; i<= n; i++) v.add(i); // Printing elements System.out.println(v); // Remove element at index 3 v.remove(3); // Displaying the vector // after deletion System.out.println(v); // iterating over vector elements // using for loop for (int i = 0; i < v.size(); i++) // Printing elements one by one System.out.print(v.get(i) + ' '); } }>

Izvade
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>

Piezīme:

  • Ja vektora pieaugums nav norādīts, tā jauda tiks dubultota katrā pieauguma ciklā.
  • Vektora kapacitāte nevar būt mazāka par izmēru, tā var būt vienāda ar to.

Dažādu operāciju veikšana vektoru klasē Java

Apspriedīsim dažādas Vector klases operācijas, kas ir uzskaitītas šādi:

  1. Elementu pievienošana
  2. Elementu atjaunināšana
  3. Elementu noņemšana
  4. Elementu atkārtošana

1. darbība: Elementu pievienošana

Lai vektoram pievienotu elementus, mēs izmantojam pievienot () metodi. Šī metode ir pārslogota, lai veiktu vairākas darbības, pamatojoties uz dažādiem parametriem. Tie ir uzskaitīti zemāk šādi:

  • pievienot (objekts): Šo metodi izmanto, lai vektora beigās pievienotu elementu.
  • add(int indekss, objekts): Šo metodi izmanto, lai vektorā pievienotu elementu noteiktā indeksā.

Piemērs:

Java
// Java Program to Add Elements in Vector Class // Importing required classes import java.io.*; import java.util.*; // Main class // AddElementsToVector class GFG { // Main driver method public static void main(String[] arg) { // Case 1 // Creating a default vector Vector v1 = new Vector(); // Adding custom elements // using add() method v1.add(1); v1.add(2); v1.add('geeks'); v1.add('forGeeks'); v1.add(3); // Printing the vector elements to the console System.out.println('Vector v1 is ' + v1); // Case 2 // Creating generic vector Vector v2 = jauns vektors (); // Pielāgotu elementu pievienošana // izmantojot add() metodi v2.add(1); v2.add(2); v2.add(3); // Vektoru elementu drukāšana konsolē System.out.println('Vector v2 ir ' + v2); } }>

Izvade:

ja vēl paziņojumi java


Vector v1 is [1, 2, geeks, forGeeks, 3] Vector v2 is [1, 2, 3]>

2. darbība: Elementu atjaunināšana

Pēc elementu pievienošanas, ja vēlamies elementu mainīt, to var izdarīt, izmantojot set() metodi. Tā kā vektors ir indeksēts, uz elementu, kuru vēlamies mainīt, atsaucas ar elementa indeksu. Tāpēc šī metode izmanto indeksu un atjaunināto elementu, kas jāievieto šajā indeksā.

Piemērs

Java
// Java code to change the // elements in vector class import java.util.*; // Driver Class public class UpdatingVector { // Main Function public static void main(String args[]) { // Creating an empty Vector Vector vector_tor = jauns vektors (); // Izmantojiet add() metodi, lai pievienotu elementus vektorā vector_tor.add(12); vec_tor.add(23); vec_tor.add(22); vec_tor.add(10); vec_tor.add(20); // Parāda vektoru System.out.println('Vector: ' + vector_tor); // Izmantojot set() metodi, lai aizstātu 12 ar 21 System.out.println('Aizstājamais objekts ir: ' + vec_tor.set(0, 21)); // Metodes set() izmantošana, lai aizstātu 20 ar 50 System.out.println('Aizstājamais objekts ir: ' + vec_tor.set(4, 50)); // Modificētā vektora parādīšana System.out.println('Jaunais vektors ir:' + vector_tors); } }>

Izvade
Vector: [12, 23, 22, 10, 20] The Object that is replaced is: 12 The Object that is replaced is: 20 The new Vector is:[21, 23, 22, 10, 50]>

3. darbība: Elementu noņemšana

Lai noņemtu elementu no vektora, mēs varam izmantot noņemt () metodi. Šī metode ir pārslogota, lai veiktu vairākas darbības, pamatojoties uz dažādiem parametriem. Viņi ir:

  • noņemt (objekts): Šo metodi izmanto, lai noņemtu objektu no vektora. Ja ir vairāki šādi objekti, tiek noņemta pirmā objekta parādīšanās.
  • noņemt(int indekss): Tā kā vektors ir indeksēts, šī metode ņem vesela skaitļa vērtību, kas vienkārši noņem elementu, kas atrodas konkrētajā vektora indeksā. Pēc elementa noņemšanas visi elementi tiek pārvietoti pa kreisi, lai aizpildītu vietu, un objektu indeksi tiek atjaunināti.

Piemērs

Java
// Java code illustrating the removal // of elements from vector import java.util.*; import java.io.*; class RemovingElementsFromVector { public static void main(String[] arg) { // Create default vector of capacity 10 Vector v = new Vector(); // Add elements using add() method v.add(1); v.add(2); v.add('Geeks'); v.add('forGeeks'); v.add(4); // Removing first occurrence element at 1 v.remove(1); // Checking vector System.out.println('after removal: ' + v); } }>

Izvade:

after removal: [1, Geeks, forGeeks, 4]>

4. darbība: vektora atkārtošana

java miegs

Ir vairāki veidi, kā atkārtot vektoru. Slavenākie veidi ir pamata for cilpas izmantošana kopā ar a gūt() metode elementa iegūšanai noteiktā indeksā un uzlabots par cilpu .

Piemērs

Java
// Java program to iterate the elements // in a Vector import java.util.*; public class IteratingVector { public static void main(String args[]) { // create an instance of vector Vectorv = jauns Vector(); // Pievienot elementus, izmantojot metodi add() v.add('Geeks'); v.add('Geeks'); v.add(1, 'Par'); // Izmantojot metodi Get un // for (int i = 0; i< v.size(); i++) { System.out.print(v.get(i) + ' '); } System.out.println(); // Using the for each loop for (String str : v) System.out.print(str + ' '); } }>

Izvade
Geeks For Geeks Geeks For Geeks>

Piezīme: Dodiet lasīt ArrayList vs Vector klase Java lai to labāk uztvertu.

Java valodā Vector klase ir daļa no Java Collections Framework un nodrošina dinamisku saraksta saskarnes masīva ieviešanu. Tas tika pievienots sākotnējā Java laidienā (Java 1.0) un nodrošina vairākas metodes, kā manipulēt ar vektora elementiem, tostarp elementu pievienošanu, ievietošanu un noņemšanu.

Šeit ir vienkāršs piemērs, kas parāda, kā izmantot vektoru Java:

Java
import java.util.Vector; public class VectorExample { public static void main(String[] args) { // Create a new vector Vector v = jauns vektors(3, 2); // Pievienot elementus vektoram v.addElement(1); v.addElement(2); v.addElement(3); // Ievietot elementu indeksā 1 v.insertElementAt(0, 1); // Noņemt elementu indeksā 2 v.removeElementAt(2); // Drukāt vektora elementus priekš (int i : v) { System.out.println(i); } } }>

Izvade
1 0 3>

Ņemiet vērā, ka Vector klase ir sinhronizēta, kas nozīmē, ka vairāki pavedieni var piekļūt vienam vektoram, neradot problēmas. Tomēr šī sinhronizācija maksā veiktspējas izmaksas, tādēļ, ja jums nav nepieciešams koplietot vektoru starp vairākiem pavedieniem, parasti labāk ir izmantot alternatīvu klasi, piemēram, ArrayList, kas nav sinhronizēta.

Vector izmantošanas priekšrocības Java:

  1. Sinhronizācija: Kā minēts iepriekš, Vector ir sinhronizēts, padarot to droši lietojamu daudzpavedienu vidē.
  2. Dinamiskais izmērs: vektora lielums var dinamiski pieaugt vai samazināties, kad elementi tiek pievienoti vai noņemti, tāpēc jums nav jāuztraucas par sākotnējā izmēra iestatīšanu, kas atbilst visiem elementiem.
  3. Mantotais atbalsts: Vector ir daļa no Java kopš tās pirmsākumiem un joprojām tiek atbalstīts, tāpēc tas ir labs risinājums, ja jums ir nepieciešams strādāt ar vecāku Java kodu, kurā tiek izmantots Vector.

Vector izmantošanas trūkumi Java:

  1. Veiktspēja: sinhronizācija Vector var izraisīt lēnāku veiktspēju salīdzinājumā ar citām kolekcijas klasēm, piemēram, ArrayList.
  2. Mantotais kods: lai gan Vector joprojām tiek atbalstīts, jaunāks Java kods bieži tiek rakstīts, izmantojot modernākas kolekcijas klases, tāpēc var būt grūtāk atrast Vector piemērus un atbalstu.
  3. Nevajadzīgas pieskaitāmās izmaksas: ja jums nav vajadzīgas Vector sinhronizācijas funkcijas, tās izmantošana jūsu kodam radīs nevajadzīgas pieskaitāmās izmaksas.

Rokasgrāmata

Laba uzziņu grāmata, lai uzzinātu par Java kolekciju ietvaru un vektoru, ir Naftalin un Wadler Java kolekcijas. Šī grāmata sniedz visaptverošu ieskatu Java kolekciju sistēmā, tostarp Vector, un ietver daudzus piemērus un vingrinājumus, lai palīdzētu jums saprast, kā šīs klases efektīvi izmantot.