Rozdiely medzi Java Vector vs ArrayList
Jedna spoločná definícia, ktorú si zapamätáme pri písaní vektora (Java). Namiesto polí sa bežne používajú vektory Java. Môžeme uviesť príklady toho istého - údaje sa síce automaticky zvyšujú, ale rozširujú sa. Môžeme vytvoriť vektor s pôvodnou veľkosťou alebo s predvolenou pôvodnou veľkosťou.
Uvidíme kód pre predvolenú počiatočnú veľkosť alebo počiatočnú veľkosť ::
- Vytvorenie vektora s predvolenou pôvodnou veľkosťou
Vektor v = nový Vektor (); - Vytvorenie vektora s pôvodnou veľkosťou
Vektor v = nový Vektor (300);
Nižšie sú uvedené bežné vektorové metódy ::
- pridanie (o)
- jasný()
- firstElement (i)
- listIterator ()
- size ()
- ToArray (Object ())
Java ArrayList je jednou z najjednoduchších a najpoužívanejších dátových štruktúr v implementačných triedach knižnice Java API. Hlavná dôležitá vec je, že používa dynamické pole na ukladanie prvkov. Jedna vec, ktorú by sme si mali pri vytváraní polí pamätať, sú tie, ktoré majú pevnú dĺžku, keď sú vytvorené, nemôžeme robiť žiadne úpravy.
Tu sú Konštruktori
ArrayList () - Pomáha pri vytváraní prázdneho zoznamu polí
ArrayList (Zbierka c) - Pomáha pri zostavovaní zoznamu konštrukčných prvkov v a
Preddefinovaná zbierka
ArrayList (int kapacita) - Pomáha pri zostavovaní prázdneho zoznamu.
Nižšie sú uvedené najbežnejšie používané metódy :: ::
- Booleovský add (E obj)
- void add (index int, E obj)
- E get (int index)
- boolean obsahuje (Object obj)
- boolean isEmpty ()
Java bola predstavená s novou kolekciou API v Java 2.0 na zabezpečenie jednotných štruktúrovaných tried. Po zavedení nového rozhrania API dôjde k zmenám v metódach. Teraz tu uvidíme niektoré staré a nové metódy zmenené v čase zmeny API.
Stará metóda | Nová metóda |
Prvok objektuAt (int) | Objekt get (int) |
void insertElementAt (Object, int) | void add (index, Object) |
void addElement (Object) | boolean add (Object) |
void setElementAt (int) | Sada objektov (int, Object) |
void removeElementAt (int) | odstránenie neplatnosti (int) |
void removeAllElements () | prázdne jasné () |
Porovnanie Head to Head medzi Java Vector vs ArrayList (Infographics)
Nižšie je najlepších 8 porovnaní medzi Java Vector vs ArrayList
Kľúčové rozdiely medzi vektorom Java Vector a ArrayListom
Nižšie sú uvedené zoznamy bodov, popíšte kľúčové rozdiely medzi vektorom Java Vector vs ArrayList
ArrayList je nesynchronizovaný a nie je bezpečný pre vlákno, ale Vector je synchronizovaný a má jedno vlákno na volanie metód súčasne. Ale keď príde na bezpečnosť, je jednovláknový prípad ArrayList je jediná možnosť, ale ak pracujeme na multithreadinge, musíme uprednostniť vektory. Ak máme akékoľvek pochybnosti alebo nejasnosti v údajoch, môžeme zvoliť vektor, pretože vo vektore môžeme nastaviť hodnotu prírastku.
Vektor môže použiť Enumeration aj Iterator rozhranie na prechod cez elementy, ale ArrayList môže použiť iba Iterator rozhranie na prechod. Vo vektore Ak používate wrapper Celé číslo, nebudete môcť zmeniť celočíselnú hodnotu. Vo vektore majú dve najpoužívanejšie metódy Next () a next (). ArrayLists sa vytvárajú s počiatočnou veľkosťou, pretože ak ich pridávajú objekty, zväčšia sa a objekty, ktorých odstránenie sa bude zmenšovať, automaticky sa zníži.
Vektorová trieda v Java implementuje dynamické pole objektov. Je to úplne totožné s poľom, obsahuje prvky dostupné pomocou jednoduchého celočíselného indexu. Veľkosť vektora sa však môže zväčšovať alebo zmenšovať, aby sa prispôsobila pridávaniu a odstraňovaniu položiek podľa potreby.
Java Vector a ArrayList poskytujú škálovateľné pole, ktoré znamená pole, ktoré môže zväčšiť priestor. Java poskytuje vektorovú triedu na zabezpečenie dynamickej veľkosti, všeobecné a užitočné preddefinované metódy (metódy sme už videli na strane 1). Ak je veľkosť pevná, použite pole; použite Vector, ak sa veľkosť môže zmeniť. Java Vector aj ArrayList sú založené na indexoch a interne používajú pole a oba Java Vector vs ArrayList udržiavajú poradie vkladania prvkov. Java ponúka triedu ArrayList, ktorá poskytuje podobné funkcie ako Vector dynamické, všeobecné a užitočné preddefinované metódy.
Java Vector a ArrayList obe triedy používané na dynamické používanie polí. Trieda ArrayList - E určuje typ objektov, ktoré môže mat 'pole. Vytvorené pole je variabilné a podľa pridelenia objektu sa môže zväčšiť alebo zmenšiť. Vector :: class Vector - E predstavuje typ objektu, ktorý bude uložený v poli.
Odporúčané kurzy
- Školenie o dátových štruktúrach a algoritmoch
- Kurzy správy porúch
- Programovanie škrupín v programe Cygwin
Porovnávacia tabuľka medzi Java Vector vs ArrayList
Nasleduje porovnávacia tabuľka medzi Java Vector vs ArrayList
Základ pre porovnanie | Vectors | ArrayList |
základné | Vektor je starou triedou a je synchronizovaný | ArrayList nie je starou triedou a nie je synchronizovaný. |
veľkosť | Takmer sa zdvojnásobí veľkosť, ak sa zvýši celkový počet prvkov | Ak sa počet prvkov zvýši, ArrayList sa zvýši o 50% svojej veľkosti |
Rast údajov | Vektor rastie a zmenšuje sa dynamicky, aby sa udržalo optimálne využitie úložného priestoru | ArrayList rastie a zmenšuje sa dynamicky, aby sa udržalo optimálne využitie úložného priestoru |
Rozhranie | Vector Používa rozhranie Iterator a Enumeration | ArrayList Používa rozhranie Iterator |
výkon | Vektor je pomalý v porovnaní s ArrayListom, pretože je synchronizovaný | ArrayList je rýchly kvôli nesynchronizácii |
Vlákno bezpečné | Áno | žiadny |
Zavedené v roku 2006 | Zavedené vo verzii JDK 1.0 | Zavedené vo verzii JDK 1.2 |
Nastavte veľkosť prírastku | Vektor definuje veľkosť prírastku | ArrayList nedefinuje veľkosť prírastku |
Záver Java Vector vs ArrayList
Na záver, aby sme dospeli k záveru, vektor Java vs ArrayList majú obidve výhody a nevýhody. Obaja sú na trhu veľmi úspešní. ArrayList je posledný raz, ak ho porovnáme s vektorom. Ak nepotrebujete synchronizáciu, preferuje sa ArrayList. Ak používate Vector alebo ArrayList, vždy sa pokúste inicializovať najväčšiu kapacitu, ktorú váš program bude potrebovať, pretože rozšírenie poľa je nákladné. ja
ArrayList je synchronizovaný, pretože preto, že na poli môže byť súčasne prevádzkovaných viac vlákien, s odkazom na pole, keď jedno vlákno pridáva do objektu, iné vlákno odstraňuje objekt z rovnakého poľa v rovnakom čase.
Java Vector aj ArrayList obsahujú odkazy na objekty. Ak je pole úplne obsadené a ak chceme pridať nový objekt po úplnom obsadení, teraz sa v oboch prípadoch veľkosť zväčší, ale hlavný rozdiel príde vo veľkosti v poli ArrayList, ak veľkosť nie je zadaná, môže sa zväčšiť o polovicu aktuálneho poľa, ale vektor môže zdvojnásobiť veľkosť, ak nie je zadaná hodnota prírastku.
Nakoniec na záver konštatujem, že ArrayList sa vždy uprednostňuje. Prečo, pretože ArrayList pracuje rýchlejšie a lepšie v porovnaní s Vector.
Odporúčaný článok
Toto bol sprievodca rozdielmi medzi vektorom Java vs ArrayListom, ich významom, porovnaním medzi dvoma hlavami, kľúčovými rozdielmi, porovnávacími tabuľkami a závermi. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Výkon Java vs Python: Aké sú rozdiely
- Scala verzus Java Performance: Čo je lepšie? (Infographics)
- Java vs JavaScript - 8 užitočných porovnávaní, ktoré sa treba naučiť
- Java vs Python - Top 9 dôležitých porovnaní, ktoré musíte naučiť
- Java Heap vs Stack - 7 úžasných vecí, ktoré by ste mali vedieť
- C # Array vs List: Aké sú výhody
- Array vs ArrayList | Top 6 Rozdiely