Forskellen mellem ArrayList og Vector i Java
Indhold
ArrayList og Vector er begge klasserne under Collection Framework hierarchy. ArrayList og Vector bruges begge til at skabe en dynamisk række objekter, hvor matrixen kan vokse i størrelse, når og når det er nødvendigt. Der er to grundlæggende forskelle, der adskiller ArrayList og Vector er, at Vector hører til Legacy-klasser, der senere blev genudviklet for at understøtte samlingsklasserne, hvorimod en ArrayList er en standardindsamlingsklasse. En anden vigtig forskel er, at ArrayList på den anden side ikke er synkroniseret; Vektor synkroniseres.
Lad os studere nogle andre forskelle ved hjælp af sammenligningstabellen vist nedenfor.
- Sammenligningstabel
- Definition
- Vigtige forskelle
- ligheder
- Konklusion
Sammenligningstabel
Grundlag for sammenligning | ArrayList | Vector |
---|---|---|
Grundlæggende | ArrayList-klassen er ikke synkroniseret. | Vektorklasse synkroniseres. |
Legacy klasse | ArrayList er en standard samlingsklasse. | Vector er en arvsklasse, der er konstrueret til at understøtte samlingsklassen. |
Klassedeklaration | klasse ArrayList | klasse Vector |
omfordeling | Når det ikke er angivet, øges en ArrayList med halvdelen af dens størrelse. | Når det ikke er angivet, øges en vektor for at fordoble dens størrelse. |
Ydeevne | Da ArrayList ikke er synkroniseret, fungerer det hurtigere end Vector. | Idet Vector er synkroniseret, fungerer det langsommere end ArrayList. |
Enumeration / Iterator | ArrayList bruger Iterator-interface til at krydse objekter, der er gemt i ArrayList. | Vector bruger optælling såvel som Iterator-interface til at krydse objekter, der er gemt i vektorer. |
Definition af ArrayList
ArrayList hører til listen over standardindsamlingsklasser. Klassen ArrayList er defineret inde i java.util pakke, udvider den AbstractList klasse, som også er en standard indsamlingsklasse, og den implementerer også Liste, en grænseflade defineret i Collection Interfaces. I Java er en standardgruppe altid af fast længde. Det betyder, når den først er oprettet; det vokser ikke eller krymper i dynamisk størrelse. Så du skal have den forudgående viden om længden på den matrix, du bruger. Men nogle gange kan det ske, at den krævede længde afsløres ved kørsel, så for at håndtere denne form for situation introducerede java ArrayList.
ArrayList er klassen, der bruges til dynamisk oprettelse af en matrix, der indeholder referencerne til objekterne. Denne matrix kunne vokse i størrelse, når og når det er nødvendigt. Klassedeklarationen er som følger:
klasse ArrayList Her specificerer E den type objekter, som en matrix vil indeholde. Den oprettede matrix har variabel længde, og den øges og formindskes i størrelse, når objekter tilføjes eller fjernes fra listen. ArrayList er ikke synkroniseret, hvilket betyder, at mere end en tråd kan fungere på arrayet på samme tid. For eksempel, hvis en tråd tilføjer en objektreference til arrayen, og en anden tråd fjerner en objektreference fra den samme matrix på samme tid. Oprettelsen af en dynamisk matrix ved hjælp af ArrayList-klassen: ArrayList I ovenstående kode kan du se det; Jeg oprettede en række objekter af strengetype. Jeg føjede nogle objekter til matrixen S1 ved hjælp af add () -metoden, og senere slettede nogle objekter ved hjælp af remove () -metoden. Du kan observere, hvis du ikke angiver den oprindelige størrelse på matrixen, den vil være af '0' længde. Som du kan se, arrayet vokser og krymper i størrelse, når du tilføjer og sletter elementerne. Vector er en Legacy-klasse, der genudvikles for at understøtte samlingsklassen i hierarkiet med samlingsrammer. Vektorklassen er også defineret i java.util pakke, udvidet med AbstractList klasse og implementeret af Liste grænseflade. Vector-klassen er erklæret som følger: klasse Vector Her definerer E typen af objekt, der skal gemmes i en matrix. En matrix oprettet ved hjælp af Vector-klassen er af variabel længde. Det øger det dobbelte af størrelsen, hvis tildelingen ikke er specificeret. Lad os forstå oprettelsen af matrix ved hjælp af Vector. Vector I ovenstående kode kan du se, at jeg især nævnte størrelsen og forøgelsesværdien i henholdsvis konstruktøren af Vector, mens jeg erklærede matrixen af strengobjekter. Derfor kan du konstatere, at når grænsen for array afsluttes, øges den med den værdi, der er leveret til konstruktøren, mens deklarationen. Jeg konkluderer med at sige, at brug af ArrayList er bedre end at bruge Vector, da det fungerer hurtigere og bedre.Definition af vektor
ligheder:
Konklusion: