ArrayList a vektory ukládají prvky pole. Umožňují uživatelům ukládat více objektů. V obou se data ukládají dynamicky.
Key Takeaways
- ArrayList a Vector jsou implementace pole s měnitelnou velikostí v Javě.
- Vektor je synchronizován, ale ArrayList nikoli.
- ArrayList je rychlejší. Vector je bezpečný pro vlákna.
ArrayList vs Vector
ArrayList je pole s měnitelnou velikostí, které není synchronizováno, díky čemuž je rychlé. K procházení prvků používá rozhraní Iterator. Vektor ukládá prvky stejného typu nebo se implicitně převádí a může používat iterátor i výčtové rozhraní. Je synchronizovaný, a proto pomalý.
ArrayList pomáhá uživateli provádět úpravy velikosti pole. ArrayList umožňuje zmenšit nebo rozšířit pole podle požadavků uživatele.
vektor se nachází v Javě. Util balíček. Podporuje dynamické pole prvků, což znamená, že pole lze měnit. Vektory patří do třídy legacy.
Srovnávací tabulka
Parametry srovnání | ArrayList | vektor |
---|---|---|
Synchronizace | ArrayList není synchronizovaný, tj. může pracovat na různých vláknech současně. | Vektor je synchronizovaný, tj. pouze jedno vlákno může zpracovávat kód najednou. |
Rychlost | Jeho operace jsou rychlé, protože nejsou synchronizované. | Vektorové operace běží pomaleji, protože jsou synchronizovány. |
Změna velikosti | Pokud prvky překročí svou kapacitu, ArrayList se zvětší o 50 % stávající velikosti pole. | Pokud prvky překročí svou kapacitu, vektor se zvětší o 100 % velikosti stávajícího pole. |
Přednost | Programátoři preferují ArrayList před vektory. | Je méně preferovaný, protože synchronizace ve vektorech způsobuje horší výkon. |
Průjezd (průchozí) | K procházení prvků používá Iterator. | K procházení prvků může použít iterátor i výčet. |
Co je to ArrayList?
ArrayList je upravitelné pole. Nachází se v Jáva. util balíček. Vytvoření ArrayList je užitečné, když uživatel nezná velikost dat, která mají být zahrnuta.
ArrayList umožňuje uživatelům provádět základní operace přidávání prvků, odebírání prvků, změny prvků a operace smyček.
ArrayList podporuje více operací.
- Chcete-li přidat prvky: K přidání prvků použijte operaci add().
- Přístup k libovolnému prvku: K prvkům lze přistupovat pomocí možnosti get(). K prvkům se přistupuje pomocí indexátoru, který začíná od nuly.
- Chcete-li změnit prvek: Chcete-li provést změny v jakémkoli konkrétním prvku, použijte operaci set().
- Odebrání prvků: Tyto tři operace Remove(), Removerange(, ) a RemoveAt se používají k odstranění prvků v ArrayList.
ArrayList se ovládá jeho velikostí. Lze jej však rozšířit přidáním prvků a zmenšit odebráním prvků.
Následující dvě metody se používají ke kontrole, zda prvek existuje v Java ArrayList nebo ne.
- obsahuje()
- indexOf()
Co je Vektor?
Vector je považován za starší třídu, která je synchronizovaná. Pokud je k provozu potřeba více vláken, nemohou současně fungovat žádná dvě vlákna.
Vektory jsou považovány za bezpečné pro vlákna. Bezpečnost závitů zajišťuje uživatelům, že všechna vlákna fungují správně a splňují jejich konstrukční kritéria bez nežádoucí interakce.
Vektor zajišťuje přidání nebo odstranění prvků zvětšením nebo zmenšením velikosti vektoru. Tam může být některé případy, kdy uživatel nemá předchozí znalosti o délce pole.
Vector, stejně jako ArrayList, umožňuje uživatelům provádět základní operace přidávání prvků, odebírání prvků, změny prvků a operace smyček.
- Chcete-li přidat prvky: K přidání prvků použijte operaci add().
- Chcete-li změnit prvky: Ke změně prvků použijte operaci set(). Prvky ve vektorech jsou přiřazeny jejich indexem.
- Odebrání prvků: K odstranění prvků z vektoru použijte metodu remove().
Vector podporuje další simplexní operace kromě základních uvedených operací.
Hlavní rozdíly mezi ArrayList A Vector
- Operace ArrayList nejsou bezpečné pro vlákna, zatímco vektorové operace jsou bezpečné pro vlákna.
- ArrayList je třída kolekce, zatímco vector je starší třída.
- https://dl.acm.org/doi/abs/10.1145/1044550.1041666
- https://dl.acm.org/doi/abs/10.1145/3394451.3397204
Poslední aktualizace: 19. července 2023
Sandeep Bhandari získal bakalářský titul v oboru počítačů na Thapar University (2006). Má 20 let zkušeností v oblasti technologií. Má velký zájem o různé technické obory, včetně databázových systémů, počítačových sítí a programování. Více si o něm můžete přečíst na jeho bio stránka.
Líbilo se mi hloubkové srovnání mezi ArrayList a Vector. Zvláště užitečný byl příklad změny velikosti.
Ano, specifika změny velikosti jsou klíčovým rozdílem mezi těmito dvěma. Skvělé vysvětlení.
Uvedené odkazy na akademické zdroje zvyšují důvěryhodnost článku. Skvělý doplněk.
Souhlasím, reference dodávají obsahu směrodatný nádech.
Přehled ArrayList a Vector je velmi podrobný a bystrý. Článek nabízí důkladné pochopení těchto pojmů.
Souhlasím, je to vynikající průvodce pro pochopení těchto základních datových struktur v Javě.
Specifika změny velikosti pole byla velmi užitečná. Praktické poznatky z článku jsou velmi ceněny.
Praktické příklady rozhodně přidávají článku nesmírnou hodnotu.
Reálné důsledky změny velikosti činí obsah vysoce relevantním.
Rozdělení funkcí ArrayList a Vector je velmi dobře strukturováno. Je snadné to uchopit.
Struktura rozhodně usnadňuje srovnání.
V Javě jsem nový, takže oceňuji podrobné vysvětlení. To mi pomůže.
Naprosto souhlasím. Informace jsou prezentovány velmi efektivně.
Ano, tento článek poskytuje jasné pochopení rozdílů mezi ArrayList a Vector.
Článek efektivně rozděluje složité pojmy do snadno srozumitelných bodů. Skvělé pro studenty.
Právě díky jednoduchosti vysvětlení je velmi přístupný pro začátečníky.
Díky jasnému vysvětlení operací a funkcí je tento článek cenným zdrojem pro vývojáře v jazyce Java.
Článek je rozhodně skvělou referencí pro začátečníky i zkušené vývojáře.
Tento článek poskytuje komplexní přehled. Rozdělení hlavních rozdílů je velmi informativní.
Srovnávací tabulka rozhodně nabízí stručné shrnutí rozdílů.
Zjistil jsem, že podrobnosti o traverzálních technikách jsou také docela poučné.
Poskytnuté podrobné operace a rozlišení jsou velmi užitečné. Skvělé čtení!
Souhlasím, článek odvádí skvělou práci při zdůrazňování klíčových aspektů.
Článek je rozhodně skvělým učebním zdrojem pro pochopení těchto datových struktur.