Rozdíly mezi Java Vector vs ArrayList
Jedna společná definice, kterou si zapamatujeme při psaní o vektoru (Java). Místo vektorů se běžně používají vektory Java. Můžeme uvést příklady toho samého - zatímco data rostou automaticky, budou se rozšiřovat. Můžeme vytvořit vektor s počáteční velikostí nebo s výchozí počáteční velikostí.
Uvidíme kód pro výchozí počáteční velikost nebo počáteční velikost ::
- Vytvoření vektoru s výchozí počáteční velikostí
Vector v = new Vector (); - Vytvoření vektoru s počáteční velikostí
Vector v = new Vector (300);
Níže jsou uvedeny běžné vektorové metody ::
- přidat (o)
- Průhledná()
- firstElement (i)
- listIterator ()
- velikost()
- toArray (Object ())
Java ArrayList je jednou z nejjednodušších a nejpoužívanějších datových struktur v implementačních třídách knihovny Java API. Hlavní důležitá věc je, že používá dynamické pole pro ukládání prvků. Jedna věc, kterou bychom si měli pamatovat při vytváření polí, jsou pole pevné délky, jakmile jsou vytvořena, nemůžeme provádět žádné úpravy.
Níže jsou konstruktéři
ArrayList () - Pomáhá při vytváření seznamu prázdných polí
ArrayList (Collection c) - Pomáhá při vytváření seznamu konstruktivních prvků v a
Předdefinovaná kolekce
ArrayList (int kapacita) - Pomáhá při vytváření prázdného seznamu.
Níže jsou uvedeny nejčastěji používané metody :: ::
- Booleovský add (E obj)
- void add (int index, E obj)
- E get (int index)
- boolean obsahuje (Object obj)
- boolean isEmpty ()
Java byla představena s novou kolekcí API v Java 2.0, která poskytuje jednotné strukturované třídy. Po zavedení nového API dojde ke změnám v metodách. Nyní uvidíme některé staré a nové metody změněné v době změny API.
Stará metoda | Nová metoda |
Objekt elementAt (int) | Objekt get (int) |
void insertElementAt (Object, int) | void add (index, Object) |
void addElement (Object) | boolean add (Object) |
void setElementAt (int) | Sada objektů (int, Object) |
void removeElementAt (int) | odstranění neplatnosti (int) |
void removeAllElements () | neplatné jasné () |
Srovnání hlava-hlava mezi vektorem Java vs ArrayList (infografika)
Níže je uvedeno Top 8 Porovnání mezi Java Vector vs ArrayList
Klíčové rozdíly mezi Java Vector vs ArrayList
Níže jsou uvedeny seznamy bodů, popište klíčové rozdíly mezi vektorem Java Vector vs ArrayList
ArrayList je nesynchronizovaný a není bezpečný pro vlákno, ale Vector je synchronizovaný a má jedno vlákno pro volání metod najednou. Ale pokud jde o bezpečnost, je jednovláknový případ ArrayList je jedinou možností, ale pokud pracujeme na multithreadingu, musíme dát přednost vektorům. Pokud máme pochybnosti nebo nejasnosti v datech, můžeme vybrat vektor, protože ve vektoru můžeme nastavit hodnotu přírůstku.
Vektor může používat Enumeration i Iterator rozhraní pro přechod přes elementy, ale ArrayList může použít Iterator rozhraní pouze pro přechod. Ve vektoru Používáte-li obálku Integer, nebudete moci změnit hodnotu integer. Ve vektoru mají dvě nejpoužívanější metody Next () a next (). ArrayLists jsou vytvářeny s počáteční velikostí, protože pokud je přidávají objekty, zvětší se velikost a objekty, které odebírají, se automaticky zmenší.
Třída vektorů v jazyce Java implementuje dynamické pole objektů. Je přesně identická s maticí, obsahuje prvky dostupné pomocí jednoduchého celočíselného indexu. Velikost vektoru se však může zvětšit nebo zmenšit, aby vyhovovala přidávání a odebírání položek podle potřeby.
Java Vector a ArrayList oba poskytují přeměnitelné pole, které znamená pole, které může zvětšit prostor. Java poskytuje vektorovou třídu, která poskytuje dynamickou velikost, obecné a užitečné předdefinované metody (metody jsme již viděli na stránce 1). Pokud je velikost pevná, použijte pole; Pokud se velikost může změnit, použijte Vector. Jak Java Vector, tak ArrayList jsou založeny na indexu a interně používají pole a oba Java Vector vs ArrayList udržují pořadí vkládání prvků. Java nabízí třídu ArrayList, která poskytuje podobné funkce jako Vector dynamické, obecné a užitečné předdefinované metody.
Java Vector a ArrayList obě třídy používané pro dynamické použití polí. Třída ArrayList - E určuje typ objektů, které může pole obsahovat. Zde vytvořené pole je proměnné a může se zvyšovat nebo snižovat na základě alokace objektu. Vector :: class Vector - E představuje typ objektu, který bude uložen do pole.
Doporučené kurzy
- Školicí kurz datových struktur a algoritmů
- Kurzy správy defektů
- Programování prostředí v programu Cygwin
Srovnávací tabulka mezi Java Vector vs ArrayList
Následuje srovnávací tabulka mezi Java Vector vs ArrayList
Základ pro srovnání | Vektory | ArrayList |
Základní | Vektor je stará třída a je synchronizován | ArrayList není starší třídou a není synchronizován. |
Velikost | Téměř se zdvojnásobí, pokud se zvýší celkový počet prvků | Pokud se počet prvků zvýší, ArrayList se zvětší o 50% své velikosti |
Růst dat | Vektor roste a zmenšuje se dynamicky, aby se zachovalo optimální využití úložiště | ArrayList dynamicky roste a zmenšuje se, aby se zachovalo optimální využití úložiště |
Rozhraní | Vector používá rozhraní Iterator a Enumeration | ArrayList Používá rozhraní Iterator |
Výkon | Vektor je ve srovnání s ArrayList pomalý, protože je synchronizován | ArrayList je rychlý kvůli nesynchronizaci |
Vlákno bezpečné | Ano | Ne |
Představeno v roce | Zavedeno ve verzi JDK 1.0 | Zavedeno ve verzi JDK 1.2 |
Nastavte velikost přírůstku | Vektor definuje velikost přírůstku | ArrayList nedefinuje velikost přírůstku |
Závěr Java Vector vs ArrayList
Konečně k závěru, Java vektor vs ArrayList oba mají výhody a nevýhody. Oba jsou na trhu velmi úspěšní. ArrayList je poslední jednou, pokud porovnáme s Vector. Pokud nepotřebujete synchronizaci, je upřednostňován ArrayList. Při použití Vector nebo ArrayList se vždy pokuste inicializovat největší kapacitu, kterou váš program bude potřebovat, protože rozšíření pole je nákladné. Já
ArrayList je synchronizován, protože protože více než jedno vlákno může být provozováno na poli současně. S odkazem na pole, pokud jedno vlákno přidává do objektu, jiné vlákno odebírá objekt ze stejného pole ve stejnou dobu.
Java Vector a ArrayList obsahují odkazy na objekty. Pokud je pole plně obsazeno a chceme-li přidat nový objekt po plném obsazení, nyní se v obou případech velikost zvětší, ale hlavní rozdíl přichází ve velikosti v ArrayListu, pokud velikost není zadána, může se zvětšit o polovinu aktuálního pole, ale vektor může zdvojnásobit velikost, pokud není zadána hodnota přírůstku.
Nakonec zakončím tím, že vždy dávám přednost použití ArrayListu. Proč protože ArrayList pracuje rychleji a lépe ve srovnání s Vector.
Doporučený článek
Toto byl průvodce rozdíly mezi Java Vector vs ArrayList, jejich význam, Head to Head Comparison, Key Differences, srovnávací tabulka a závěr. Další informace naleznete také v následujících článcích -
- Výkon Java vs Python: Jaké jsou rozdíly
- Scala vs Java Performance: Který je lepší? (Infografika)
- Java vs JavaScript - 8 užitečných srovnání se učit
- Java vs Python - Top 9 důležitých srovnání, které musíte naučit
- Java Heap vs Stack - 7 Úžasná věc, kterou byste měli vědět
- C # Array vs List: Jaké jsou výhody
- Array vs ArrayList | Top 6 Rozdíly