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

Tartalomjegyzék:

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

Videó: Különbség az ArrayList és a LinkedList között

Videó: Különbség az ArrayList és a LinkedList között
Videó: LinkedList vs ArrayList in Java Tutorial - Which Should You Use? 2024, December
Anonim

Kulcskülönbség – ArrayList vs LinkedList

A gyűjtemények hasznosak az adatok tárolására. Normál tömbben a tömb mérete rögzített. Néha szükség van olyan tömbök létrehozására, amelyek szükség szerint növekedhetnek. Az olyan programozási nyelveknek, mint a Java, vannak gyűjtemények. Ez egy keretrendszer osztályokkal és interfészekkel. Konténerként szolgál egy elemcsoport számára. A gyűjtemények lehetővé teszik az elemek halmazának tárolását, frissítését és lekérését. Segít az adatstruktúrákkal, például listákkal, halmazokkal, fákkal és térképekkel való munkában. A lista a Collection keretrendszer felülete. Az ArrayList és a LinkedList a gyűjtemények keretrendszerének két osztálya. Megvalósítják a gyűjtőfelületet és a Lista felületet. Ez a cikk az ArrayList és a LinkedList közötti különbséget tárgyalja. Az ArrayList egy osztály, amely kiterjeszti az AbstractList-et és megvalósítja a List interfészt, amely belsőleg dinamikus tömböt használ az adatelemek tárolására. A LinkedList egy osztály, amely kiterjeszti az AbstractSequentialList listát, és megvalósítja a List, Deque és Queue felületeket, amelyek belsőleg duplán összekapcsolt listát használnak az adatelemek tárolására. Ez a legfontosabb különbség az ArrayList és a LinkedList között.

Mi az ArrayList?

Az ArrayList osztály dinamikus tömbök létrehozására szolgál. A normál tömböktől eltérően a dinamikus tömb mérete nem rögzített. Az ArrayList osztály segítségével létrehozott objektum elemkészletet tárolhat a listában. A kapacitás automatikusan növekszik, így a programozó elemekkel bővítheti a listát. Az ArrayList osztály kiterjeszti a List interfészt megvalósító AbstractList osztályt. Ezért a List interfész metódusait az ArrayList használhatja. Az elemek eléréséhez a get() metódust használjuk. Az add() metódus használható elemek hozzáadására a listához. A remove() metódus egy elem eltávolítására szolgál a listából. Tekintse meg az alábbi programot.

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

01. ábra: Példa az ArrayList-re

A fenti program szerint létrejön egy ArrayList objektum. Az add módszerrel az elemek dinamikusan adhatók hozzá. Az „A”, „B”, „C”, „D” és „E” elemek hozzáadása az add módszerrel történik. Az eltávolítási módszer egy elem eltávolítására szolgál a listából. Ha a 4-et átadja az eltávolítási metódusnak, a 4. index betűje, amely az „E”, törlődik a listáról. Ha a for ciklust használja a listán, az A, B, C és D betűk nyomtatódnak ki.

Mi az a LinkedList?

Az ArrayList-hez hasonlóan a LinkedList adatelemek dinamikus tárolására szolgál. A LinkedList osztály használatával létrehozott objektum elemkészletet tárolhat a listában. A kapacitás automatikusan növekszik, így a programozó elemekkel bővítheti a listát. Belsőleg duplán linkelt listát használ az adatok tárolására. Egy duplán linkelt listában az adatok csomópontként kerülnek tárolásra. Minden csomópont két hivatkozást tartalmaz. Az első hivatkozás az előző csomópontra mutat. A következő hivatkozás a sorozat következő csomópontjára mutat.

A LinkedList osztály kiterjeszti az AbstractSequentialList osztályt és megvalósítja a List interfészt. Ezért a List interfész metódusait használhatja a LinkedList. A get() metódus használható a lista elemeinek elérésére. Az add() metódus használható elemek hozzáadására a listához. A remove() metódus egy elem eltávolítására szolgál a listából. Tekintse meg az alábbi programot.

Főbb különbség az ArrayList és a LinkedList között
Főbb különbség az ArrayList és a LinkedList között
Főbb különbség az ArrayList és a LinkedList között
Főbb különbség az ArrayList és a LinkedList között

02. ábra: Példa a LinkedList-re

A fenti program szerint létrejön egy LinkedList objektum. Az add módszerrel az elemek dinamikusan adhatók hozzá. Az „A”, „B”, „C”, „D” és „E” elemek hozzáadása az add módszerrel történik. Az eltávolítási módszer egy elem eltávolítására szolgál a listából. Ha a 4-et átadja az eltávolítási metódusnak, a 4. indexben szereplő „E” betű törlődik a listáról. Ha a for ciklust használja, akkor az A, B, C és D betűk jelennek meg.

Mi a hasonlóság az ArrayList és a LinkedList között?

  • Mind az ArrayList, mind a LinkedList implement List interfész.
  • Az ArrayList és a LinkedList is tartalmazhat duplikált elemeket.
  • Az ArrayList és a LinkedList is fenntartja a beillesztési sorrendet.

Mi a különbség az ArrayList és a LinkedList között?

ArrayList vs LinkedList

Az ArrayList egy osztály, amely kiterjeszti az AbstractList-et és megvalósítja a List interfészt, amely belsőleg dinamikus tömböt használ az adatelemek tárolására. A LinkedList egy olyan osztály, amely kiterjeszti az AbstractSequentialList listát, és megvalósítja a List, Deque, Queue interfészt, amely belsőleg duplán linkelt listát használ az adatelemek tárolására.
Elemek elérése
Az ArrayList elemeinek elérése gyorsabb, mint a LinkedListé. A LinkedList elemeinek elérése lassabb, mint egy ArrayListé.
Elemek manipulálása
Az ArrayList elemeinek manipulálása lassabb, mint a LinkedListé. A LinkedList elemeinek manipulálása gyorsabb, mint egy ArrayListé.
Viselkedés
Az ArrayList listaként működik. LinkedList listaként és várólistaként is működik.

Összefoglaló – ArrayList vs LinkedList

A gyűjtési keretrendszer lehetővé teszi az adatstruktúrákkal, például listákkal, fákkal, térképekkel és halmazokkal való munkát. A lista a gyűjtési keretrendszer felülete. Ez a cikk az ArrayList és a LinkedList közötti különbséget tárgy alta. Az ArrayList egy olyan osztály, amely kiterjeszti az AbstractList-et, és megvalósítja a List interfészt, amely belsőleg dinamikus tömböt használ az adatelemek tárolására. A LinkedList egy osztály, amely kiterjeszti az AbstractSequentialList listát, és megvalósítja a List, Deque, Queue interfészt, amely belsőleg duplán linkelt listát használ az adatelemek tárolására. Ez a különbség az ArrayList és a LinkedList között.

Ajánlott: