Különbség a tömblista és a kapcsolt lista között

Az adatok tárolása?

A tömblista és a kapcsolt lista általános kifejezések az adatok tárolására és visszakeresésére. Bár sok tárolóeszköz van, végső soron ezek a tárolási mechanizmustól függenek. Ez a két tárolómechanizmus az adatokat tárolja a tárolóeszközökbe, és szükség esetén lekérdezi azokat. Vessen egy pillantást arra, hogyan tárolják az adatokat a memóriájukban. A tömblista szekvenciális tárolást használ, és az adatelemeket egymás után tárolja. Ez talán egy egyszerűbb tárolási forma - elkerüli a zavart. Igen, ki lehet tölteni a következő elemet vagy adatokat a tömblista következő memóriahelyéről; azonban a Linked listában található mutatók segítségével tárolja. Itt két memóriahelyre van szükség a tároláshoz - egyet az adatokhoz, a másikat a mutatóhoz. A mutató a következő adatok memóriahelyére utal. Könnyen megértjük, hogy a kapcsolt lista soha nem tárolja az adatokat egymás után; inkább véletlenszerű tárolási mechanizmust használ. A mutatók a kulcsfontosságú elemek a memóriában található adathelyek megkeresésében.

Dinamikus tömb és kapcsolt lista

Már tárgyaltuk, hogy mindkét tároló mechanizmus hogyan helyezze be az adatokat, és mi adhatunk egy „dinamikus tömb” kifejezést a tömblista belső tárolási sémájához. Csak adatelemeket helyez egymás után - a nevet -, míg a Linked lista belső listát használ a mutatók segítségével a következő elem nyomon követéséhez. Ezért belső linkelt listát használ, például egyszeresen vagy kétszer összekapcsolt listát a következő adatok megjelenítéséhez.

Memóriahasználat

Mivel a tömblista csak a tényleges adatokat tárolja, helyre van szükségünk csak az általunk tárolt adatokhoz. Ezzel szemben a Linked listában mutatókat is használunk. Ezért két memóriahelyre van szükség, és elmondhatjuk, hogy a csatolt lista több memóriát fogyaszt, mint a tömblista. A Kapcsolt lista egyik előnyös oldala, hogy soha nem igényel folyamatos memóriahelyeket az adatok tárolására, szemben a tömblistakel. A mutatók képesek megőrizni a következő adathely helyzetét, és kisebb memóriahelyeket is használhatunk, amelyek nem folytonosak. Ami a memóriahasználatot illeti, a mutatók játsszák a fő szerepet a Linked listában, és ugyanúgy, mint azok hatékonysága.

A kezdeti tömblista és a kapcsolt lista mérete

A Array listával még egy üres lista 10-es méretre is szükség van, de a Linked listához nincs szükségünk ilyen hatalmas helyre. Készíthetünk egy üres, 0-os Linked listát. Később megnövelhetjük a kívánt méretet.

Adatok lehívása

Az adatok visszakeresése a tömblistában egyszerűbb, mivel egymás után tárolja. Csak az első adatok helyét azonosítja; onnan a következő helyet egymás után érik el, hogy megszerezzék a többit. Úgy számol, mint az első adatpozíció + 'n', ahol 'n' az adatok sorrendje a tömb listában. A Kapcsolt lista utal a kezdeti mutatóra az első adathely megkereséséhez, és onnan utal az egyes adatokhoz társított mutatóra, hogy megtalálja a következő adathelyet. A visszakeresési folyamat elsősorban az itt található mutatóktól függ, és ténylegesen megmutatják nekünk a következő adathelyet.

Az adatok vége

A tömblista null értéket használ az adatok végének megjelölésére, míg a kapcsolt lista null mutatót használ erre a célra. Amint a rendszer felismeri a null adatokat, a tömblista leállítja a következő adat visszakeresést. Hasonló módon a nulla mutató megakadályozza a rendszert a következő adatvisszakereséstől.

Hátramenet

A Kapcsolt lista lehetővé teszi számunkra, hogy fordított irányban haladjunk lefelé mutató () segítségével. A tömblistában azonban nincs ilyen lehetőség - a fordított áthaladás itt problémát jelent.

Szintaxis

Nézzük meg mindkét tároló mechanizmus Java szintaxisát.

Tömblista létrehozása:

Arraylistsample lista = new ArrayList ();

Objektumok hozzáadása a tömblistához:

Arraylistsample.add ( „NAME1”);

Arraylistsample.add ( „NAME2”);

Így fog kinézni az eredményül kapott tömblista - [name1, name2].

Kapcsolt lista létrehozása:

Lista csatolt listák mintája = új linksList ();

Objektumok hozzáadása a kapcsolt listához:

Linkedlistsample.add ( „NAME3”);

Linkedlistsample.add ( „NAME4”);

Így fog kinézni a kapott kapcsolt lista - [name3, name4].

 Melyik a jobb a keresés vagy keresés művelethez?

A tömblista O (1) időt vesz igénybe bármilyen adatkeresés elvégzéséhez, míg a kapcsolt listához u O (n) szükséges az nth adatkeresés. Ezért a tömblista mindig állandó időt használ minden adatkereséshez, de a Linked listában az igénybe vett idő az adatok helyzetétől függ. Ezért a tömblista mindig jobb választás a Get vagy a Search műveletekhez.

Melyik a jobb a beillesztés vagy kiegészítés műveletnél?

Mind a tömblista, mind a kapcsolt lista O (1) időt vesz igénybe az adatok hozzáadásához. De ha a tömb megtelt, akkor a tömblista jelentős időt vesz igénybe annak átméretezéséhez és az elemek átmásolásához az újabbba. Ebben az esetben a kapcsolt lista a jobb választás.

Melyik a jobb az eltávolítási művelethez?

Az eltávolítási művelet majdnem ugyanannyi időt vesz igénybe mind a tömblistán, mind a kapcsolt listán. A tömblistában ez a művelet törli az adatokat, majd eltolja az adatok helyzetét az újabb tömb kialakításához - O (n) időt vesz igénybe. A Linked listában ez a művelet az adott adatokra megy át, és megváltoztatja a mutató pozícióit, hogy újabb listát képezzen. A transzláció és az eltávolítás ideje itt is O (n).

Amely gyorsabb?

Tudjuk, hogy a tömblista belső tömböt használ a tényleges adatok tárolására. Ezért ha bármely adat törlődik, akkor az összes jövőbeli adatnak memóriaváltást kell végrehajtania. Ez nyilvánvalóan sok időt igényel, és lelassítja a dolgokat. Ilyen memória-eltolásra nincs szükség a Linked listában, mivel csak a mutató helyének megváltoztatásával jár. Ezért a kapcsolt lista gyorsabb, mint a tömblista, bármilyen adattárolás esetén. Ez azonban tisztán a művelet típusától függ, vagyis a Get vagy Search műveletnél a Linked lista sokkal több időt vesz igénybe, mint egy Array lista. Az általános teljesítményt tekintve elmondhatjuk, hogy a Linked lista gyorsabb.

Mikor kell tömblistát és kapcsolt listát használni??

A tömblista a legmegfelelőbb kisebb adatigényekhez, ahol folyamatos memória áll rendelkezésre. Ha viszont hatalmas mennyiségű adatot kezelünk, akkor a folyamatos memória elérhetősége megvalósítja az adattárolási mechanizmusokat, legyen az kicsi vagy hatalmas. Ezután döntse el, melyiket választja - a tömblista vagy a kapcsolt lista. A tömblista továbbléphet, ha csak adattárolásra és adatkeresésre van szüksége. De egy lista az adatok manipulálásával túlmutathat. Miután eldöntötte, hogy az adatkezelés milyen gyakran szükséges, fontos ellenőrizni, hogy milyen típusú adatkeresést végez általában. Ha csak a Get vagy a Search, akkor a tömblista a jobb választás; egyéb műveletek, például beillesztés vagy törlés esetén folytassa a Linked listát.

Nézzük meg a táblázatos formák különbségeit.

S.No fogalmak Különbségek
Tömb lista Kapcsolt lista
1 Adattárolási divat Szekvenciális adattárolást használ Nem szekvenciális adattárolást használ
2 Belső tárolási rendszer Belső dinamikus tömböt tart fenn Fenntartja a kapcsolt listát
3 Memóriahasználat Memóriahelyet igényel csak az adatok számára Memóriahelyet igényel az adatokhoz és a mutatókhoz is
4 A kezdeti lista mérete Legalább 10 elem számára hely szükséges Nincs szükség helyre, és akár egy üres, 0-os, összekapcsolt listát is létrehozhatunk.
5 Adatok lehívása Kiszámítja, mint az első adatpozíció + 'n', ahol 'n' az adatok sorrendje a tömb listában Áttekintés az elsőtől az utolsóig, amíg a szükséges adatok megadása meg nem történt
6 Az adatok vége A Null értékek jelzik a végét A Null Pointer a végét jelöli
7 Hátramenet Nem engedi meg Lehetővé teszi a csökkenő levezető segítségével ()
8 Lista létrehozásának szintaxisa Arraylistsample lista = new ArrayList ();

Lista csatolt listák mintája = új linksList ();

9 Objektumok hozzáadása Arraylistsample.add ( „NAME1”);

Linkedlistsample.add ( „NAME3”);

10 Keressen vagy keressen O (1) időt vesz igénybe, és jobb teljesítményt nyújt O (n) időt vesz igénybe, az idő és a teljesítmény az adatok helyzetétől függ
11 Beszúrás vagy kiegészítés O (1) időt vesz igénybe, kivéve, ha a töltelék megtelt O (1) időt vesz igénybe minden körülmények között
12 Törlés vagy eltávolítás O (n) időt vesz igénybe O (n) időt vesz igénybe
13 Mikor kell használni?? Ha sok Get vagy Search művelet van bevonva; a memória rendelkezésre állásának még a kezdetben is nagyobbnak kell lennie Ha sok beszúrási vagy törlési művelet létezik, és a memória rendelkezésre állásának nem kell, hogy folyamatos legyen