Különbség az ArrayList és a LinkedList között a Java-ban

Szerző: Laura McKinney
A Teremtés Dátuma: 3 Április 2021
Frissítés Dátuma: 15 Lehet 2024
Anonim
Különbség az ArrayList és a LinkedList között a Java-ban - Technológia
Különbség az ArrayList és a LinkedList között a Java-ban - Technológia

Tartalom


Az ArrayList és a LinkedList a Gyűjtemény osztályok, és mindkettő megvalósítja a Lista felület. Az ArrayList osztály létrehozza azt a listát, amelyet a tárol egy a dinamikus sor amely növekszik vagy csökken, amikor az elemeket hozzáadják vagy törlik tőle. A LinkedList létrehozza azt a listát is, amelyet belső tárol a Kétszeresen összekapcsolt Lista. Mindkét osztályt használják az elemek tárolására a listában, de a legnagyobb különbség az ArrayList és a LinkedList osztályok között az, hogy Tömb lista véletlenszerű hozzáférést tesz lehetővé a listában szereplő elemekhez, amint az működik index alapú adatszerkezet. Másrészt a láncolt lista nem engedélyezi a véletlenszerű hozzáférést, mivel nincs indexe az elemekhez való közvetlen hozzáféréshez, át kell haladnia a listán az elem lekéréséhez vagy eléréséhez.


Beszéljünk néhány további különbségről az ArrayList és a LinkedList között az alább bemutatott összehasonlító táblázat segítségével.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaTömb listaláncolt lista
Alapvető Az ArrayList véletlenszerű hozzáférést tesz lehetővé a lista elemekhez.A LinkedList nem engedélyezi a lista elemeinek véletlenszerű hozzáférését.
Adat szerkezeteAz elemek tárolására használt belső struktúra a dinamikus tömb.Az elemek tárolására használt belső struktúra kétszeresen összekapcsolt lista.
kiterjesztiAz ArrayList kiterjeszti az AbstarctList osztályt.A LinkedList kiterjeszti az AbstractSequentialList oldalt.
munkagépekAz AbstractList végrehajtja a lista felületet.A LinkedList végrehajtja a Lista, a Deque, a Queue-t.
Hozzáférés A lista elemeinek gyorsabb elérése az ArrayList alkalmazásban.A LinkedList lassabban érinti el a lista elemeit.
ManipulációA lista elemeivel történő manipulálás lassabb az ArrayList alkalmazásban.A listában szereplő elemekkel történő manipuláció gyorsabb a LinkedList alkalmazásban.
ViselkedésAz ArraylList Listaként viselkedik, amikor végrehajtja a listát.A LinkedList úgy viselkedik, mint a Lista, valamint a Sor, mivel végrehajtja mind a Lista, mind a Sor sorát.


Az ArrayList meghatározása

Az AbstractList osztályt a Gyűjtési keret. Ez kiterjed AbstarctList és munkagépek Lista felület. Az ArrayList használja dinamikus tömb vagyis a változó hosszúságú tömb belső adatszerkezetként az elemek tárolására a listában. ArrayList igénye felmerül, mivel a java tömb rögzített hosszúságú. Tehát nem növekszik vagy nem zsugorodhat, mivel az elemeket hozzáadják vagy törlik a tömbből. Tehát előre meg kell tudnia a szükséges tömb méretét. Az ArrayList osztály használatával megvalósított tömblista azonban növekszik és csökkenhet, mivel az elemeket hozzáadják vagy törlik a tömbből.

Az ArrayList segítségével megvalósított tömblista elérhető véletlenszerűen mivel az ArrayList index alapon működik. Tehát az index megismerésével közvetlenül hozzáférhet a lista elemeihez. Az ArrayList három építője van:

ArrayList () ArrayList (A gyűjtemény <? Kiterjesztése E> c) ArrayList (int kapacitás)

Az első A konstruktor üres tömblistát hajt végre. Az második A konstruktor a következő használatával inicializált tömblistát valósít meg: Gyűjtemény c elemekkel. Az harmadik A konstruktor tömblistát valósít meg a kapacitás amelyet az érvelés tartalmaz. Az ArrayList-rel együttműködve néha szükség lesz a Collection ArrayList tömbbé konvertálására. Hívással lehet megtenni toArray ().

A LinkedList meghatározása

Mint az ArrayList, láncolt lista szintén a Gyűjtemény osztály felhasználások kétszeresen kapcsolt lista belső adatszerkezetként az elemek tárolására a listában. A LinkedList osztály kibővül AbstractSequentialList és végrehajtja a Lista, Deque és sorban áll interfészek. A LinkedList segítségével megvalósított csatolt lista nem érhető el véletlenszerűen. Ha valamelyik elemet ki akarja venni a listából, meg kell ismételnie a listát az elem kereséséhez.

Két építész van a LinkedList osztályban.

LinkedList () LinkedList (Gyűjtemény <? Kiterjesztése E> c)

Az első A konstruktor létrehoz egy üres csatolt listát. Az második A konstruktor összekapcsolt listát készít, amelyet a Gyűjtemény c.

A LinkedListben a lista kezelése egyszerű és gyors. Ennek oka az, hogy ha hozzáad egy elemet a listába, vagy törli azt, akkor nincs szükség az elemek eltolására, mint az ArrayList-ben. De a hozzáférés lassabb, mivel nincs indexe az elemek közvetlen eléréséhez.

  1. Az ArrayList által végrehajtott lista véletlenszerűen érhető el, mert az ArrayList átveszi a tömb index alapú adatstruktúráját. Másrészt a LinkedList által végrehajtott listához nem lehet véletlenszerűen hozzáférni, mivel a lista egy elemének lekérdezéséhez vagy eléréséhez meg kell haladnia a listát.
  2. Az ArrayList által a lista elemeinek tárolására használt belső adatszerkezet a dinamikus tömb amelyek növekedhetnek vagy összehúzódhatnak, amikor az elemeket hozzáadják vagy törlik a listáról. A LinkedList által a listában szereplő elemek tárolására használt belső adatszerkezet azonban az kétszeresen kapcsolt lista.
  3. A ArrayList kiterjeszti a AbstractList osztály, amely szintén Gyűjtemény osztály, míg a LinkedList osztály kiterjed AbstractSequentialList osztály, amely ismét Gyűjtemény osztály.
  4. ArrayList osztályú eszközök Lista felület, míg a LinkedList osztály megvalósítja Lista, sorban állés Deque interfészek.
  5. Az ArrayList segítségével megvalósított elemek elérése a listából gyorsabb mivel index-alapú adatszerkezettel rendelkezik. Másrészről nincs index alapú struktúra a LinkledList listában végrehajtott listában. Ezért egy iterátort alkalmazunk a lista fölé annak a elemnek a eléréséhez, amely hozzáférést tesz lehetővé lassabb a LinkedListben.
  6. A Manipuláció Manipuláció az ArrayList használatával végrehajtott listában, mert amikor egy elemet hozzáadunk vagy töröl a listáról, a lista elemei eltolódnak a változás figyelembevétele érdekében. Másrészt a manipuláció gyorsabb a LinkedList által végrehajtott listában, mivel ehhez nem szükséges a listában szereplő elemek eltolása az elemek hozzáadásakor vagy törlésekor.
  7. Az ArrayList úgy viselkedik, mint a lista mivel a Lista felületet valósítja meg, míg a LinkedList mint lista és sorban áll mivel mindkettőt végrehajtja a Lista és a Sorban.

Következtetés:

Ha a listában szereplő elemek gyakran kerülnek hozzáadásra vagy törlésre, akkor a LinkedList-t kell használni, mivel ez jobban teljesít a manipuláció során. Ha gyakori keresést alkalmaznak a listára, akkor az ArrayList a legjobb választás, mivel jobban teljesít, miközben a listáról elemeket keres.