Skillnaden mellan ArrayList och Vector i Java
Innehåll
ArrayList och Vector är båda klasserna under Collection Framework hierarchy. ArrayList och Vector, båda används för att skapa en dynamisk matris med objekt där matrisen kan växa i storlek efter behov. Det finns två grundläggande skillnader som skiljer ArrayList och Vector är att Vector tillhör Legacy klasser som senare reengineerered för att stödja samling klasser, medan en ArrayList är en standard samling klass. En annan viktig skillnad är att ArrayList å andra sidan är icke-synkroniserad; Vektor synkroniseras.
Låt oss studera några andra skillnader med hjälp av jämförelsetabellen nedan.
- Jämförelsediagram
- Definition
- Viktiga skillnader
- Likheter
- Slutsats
Jämförelsediagram
Grund för jämförelse | Arraylist | Vektor |
---|---|---|
Grundläggande | ArrayList-klassen är inte synkroniserad. | Vektorklassen är synkroniserad. |
Legacy klass | ArrayList är en standardsamlingsklass. | Vector är en arvsklass, omkonstruerad för att stödja samlingsklassen. |
Klassdeklaration | klass ArrayList | klassvektor |
omfördelning | När det inte anges ökas en ArrayList med halva storleken. | När det inte anges ökas en vektor för att fördubbla storleken. |
Prestanda | Eftersom ArrayList är osynkroniserad fungerar det snabbare än Vector. | Eftersom Vector är synkroniserat fungerar det långsammare än ArrayList. |
Räkning / Iterator | ArrayList använder Iterator-gränssnittet för att gå igenom objekt lagrade i ArrayList. | Vektor använder uppräkning såväl som Iterator-gränssnitt för att gå igenom föremål lagrade i vektorer. |
Definition av ArrayList
ArrayList tillhör listan med standardsamlingsklasser. Klassen ArrayList definieras inuti java.util paketet förlänger det AbstractList klass som också är en standardsamlingsklass, och den implementerar också Lista, ett gränssnitt definierat i samlingsgränssnitt. I Java är en standardmatris alltid av fast längd. Det betyder en gång skapad; det växer eller krymper inte dynamiskt i storlek. Så du bör ha förkunskaperna om längden på den matris du använder. Men ibland kan det hända att den erforderliga längden avslöjas vid körning så att hantera den här typen av situation java introducerade ArrayList.
ArrayList är klass som används för dynamisk skapande av en matris som innehåller referenser till objekt. Denna grupp kan växa i storlek efter behov. Klassdeklarationen är som följer:
klass ArrayList Här anger E vilken typ av objekt som en matris kommer att innehålla. Den skapade matrisen har variabel längd och den ökar och minskar i storlek när objekt läggs till eller tas bort från listan. ArrayList är inte synkroniserad vilket innebär att mer än en tråd kan fungera på matrisen samtidigt. Om till exempel en tråd lägger till en objektreferens till arrayen och en annan tråd tar bort en objektreferens från samma matris samtidigt. Skapa en dynamisk matris med ArrayList-klassen: Arraylist I ovanstående kod kan du se det; Jag skapade en rad objekt av strängtyp. Jag har lagt till några objekt i matrisen S1 med metoden add () och senare raderade några objekt med metoden remove (). Du kan observera om du inte anger den ursprungliga storleken på matrisen kommer den att vara av "0" längd. Som du ser kan arrayen växa och krympa i storlek när du lägger till och tar bort elementen. Vector är en Legacy-klass som omarbetas för att stödja samlingsklassen i hierarkin för samlingsram. Vektorklassen definieras också i java.util paket, utökat med AbstractList klass och genomförs av Lista gränssnitt. Vektorklassen förklaras som följer: klassvektor Här definierar E vilken typ av objekt som ska lagras i en matris. En matris skapad med vektorklassen har variabel längd. Den ökar det dubbla storleken om ökningen inte anges. Låt oss förstå skapandet av array med hjälp av Vector. Vektor I koden ovan kan du se att jag nämnde särskilt storleken och tilläggsvärdet i konstruktören av Vector respektive, medan jag förklarade matrisen av strängobjekt. Därför kan du observera att när gränsen för matchen slutar ökar den med det värde som tillhandahålls till konstruktören medan deklarationen. Jag avslutar med att säga att användningen av ArrayList är bättre än att använda Vector eftersom det fungerar snabbare och bättre.Definition av vektor
Likheter:
Slutsats: