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á metodaNová 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íVektoryArrayList
ZákladníVektor je stará třída a je synchronizovánArrayList není starší třídou a není synchronizován.
VelikostTé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 datVektor 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 EnumerationArrayList Používá rozhraní Iterator
VýkonVektor je ve srovnání s ArrayList pomalý, protože je synchronizovánArrayList je rychlý kvůli nesynchronizaci
Vlákno bezpečnéAnoNe
Představeno v roceZavedeno ve verzi JDK 1.0Zavedeno ve verzi JDK 1.2
Nastavte velikost přírůstkuVektor definuje velikost přírůstkuArrayList 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 -

  1. Výkon Java vs Python: Jaké jsou rozdíly
  2. Scala vs Java Performance: Který je lepší? (Infografika)
  3. Java vs JavaScript - 8 užitečných srovnání se učit
  4. Java vs Python - Top 9 důležitých srovnání, které musíte naučit
  5. Java Heap vs Stack - 7 Úžasná věc, kterou byste měli vědět
  6. C # Array vs List: Jaké jsou výhody
  7. Array vs ArrayList | Top 6 Rozdíly

Kategorie: