Tömbök vs tömblisták
A tömbök a leggyakrabban használt adatszerkezetek az elemek gyűjteményének tárolására. A legtöbb programozási nyelv módszereket kínál a tömbök egyszerű deklarálására és a tömbökben található elemek elérésére. A tömblista dinamikus tömbnek tekinthető, amelynek mérete nőhet. Emiatt a programozónak nem kell tudnia a tömblista méretét, amikor meghatározza azt.
Mik azok a tömbök?
Az 1. ábra egy olyan kódrészlet, amelyet általában egy tömb deklarálásához és értékeinek hozzárendeléséhez használnak. A 2. ábra azt ábrázolja, hogyan néz ki egy tömb a memóriában.
értékek [0] = 100; értékek [1] = 101; értékek [2] = 102; értékek [3] = 103; értékek [4] = 104; |
1. ábra: Kód az értékek deklarálásához és hozzárendeléséhez egy tömbhöz
100 | 101 | 102 | 103. | 104 |
Index: 0 | 1 | 2 | 3 | 4 |
2. ábra: A memóriában tárolt tömb
A kód felett definiál egy tömböt, amely 5 egész számot képes tárolni, és ezekhez 0 és 4 közötti indexek férnek hozzá. A tömb egyik fontos tulajdonsága, hogy a teljes tömböt egyetlen memóriablokkként osztják ki, és minden elem a saját tömbjét kapja. Miután meghatároztuk a tömböt, annak mérete rögzül. Tehát, ha nem biztos a tömb méretében fordításkor, akkor elég nagy tömböt kell meghatároznia ahhoz, hogy a biztonságos oldalon lehessen. De legtöbbször valójában kevesebb elemet fogunk használni, mint amennyit kiosztottunk. Tehát a memória jelentős része elpazarolható. Másrészt, ha az „elég nagy tömb” valójában nem elég nagy, akkor a program összeomlik.
Mik azok az Arraylisták?
A tömblista dinamikus tömbnek tekinthető, amelynek mérete nőhet. Ezért a tömblisták ideálisak olyan helyzetekben való használatra, amikor nem tudja a deklaráláskor szükséges elemek méretét. A Java-ban a tömblisták csak objektumokat tárolhatnak, közvetlenül nem tartalmazhatnak primitív típusokat (a primitív típusokat elhelyezheti egy objektumban, vagy használhatja a primitív típusok burkoló osztályait). A tömblisták általában a beillesztés, törlés és keresés végrehajtására szolgáló módszerekkel vannak ellátva. Az elemhez való hozzáférés időbeli összetettsége o (1), míg a beillesztés és törlés időbeli összetettsége o (n). A Java-ban a tömblisták áthaladhatnak foreach ciklusok, iterátorok vagy egyszerűen az indexek segítségével.
Mi a különbség a tömbök és az tömblisták között
Annak ellenére, hogy a tömbök és a tömblisták hasonlóak abban az értelemben, hogy mindkettőt elemgyűjtemények tárolására használják, különböznek a meghatározásuk módjától. A tömb méretét meg kell adni, amikor egy tömböt definiálunk, de meghatározhat egy tömblistát a tényleges méret ismerete nélkül. Elemeket hozzáadhat egy tömblistához, miután meg van határozva, és ez tömbökkel nem lehetséges. De a Java-ban a tömblisták nem tartalmazhatnak primitív típusokat, de a tömbök használhatók a primitív típusok tárolására. De ha olyan adatstruktúrára van szüksége, amely méretét változtatni tudja, akkor a tömblista lenne a legjobb választás.