Tömbök vs Arraylists
A tömbök a leggyakrabban használt adatszerkezetek egy elemgyűjtemény tárolására. A legtöbb programozási nyelv módszereket biztosít a tömbök egyszerű deklarálására és a tömbök elemeinek elérésére. A tömblistát dinamikus tömbnek tekinthetjük, amelynek mérete nőhet. Emiatt a programozónak nem kell tudnia a tömblista méretét, amikor definiálja azt.
Mik azok a tömbök?
Az 1. ábrán látható egy kódrészlet, amelyet általában egy tömb deklarálására és értékek hozzárendelésére használnak. A 2. ábra azt mutatja be, hogyan nézne ki egy tömb a memóriában.
int értékek[5]; values[0]=100; értékek[1]=101; értékek[2]=102; values[3]=103; értékek[4]=104; |
1. ábra: Kód egy tömbhöz való értékek deklarálásához és hozzárendeléséhez
100 | 101 | 102 | 103 | 104 |
Index: 0 | 1 | 2 | 3 | 4 |
2. ábra: A memóriában tárolt tömb
A fenti kód egy tömböt határoz meg, amely 5 egész számot tud tárolni, és ezek 0-tól 4-ig terjedő indexekkel érhetők el. A tömb egyik fontos tulajdonsága, hogy a teljes tömb egyetlen memóriablokkként van lefoglalva, és minden elem megkapja a sajátját. saját hely a tömbben. Ha egy tömb definiálva van, a mérete rögzített. Tehát ha nem biztos a tömb méretében a fordítási időben, akkor elég nagy tömböt kell meghatároznia ahhoz, hogy a biztonságban legyen. De a legtöbbször valójában kevesebb elemet használunk, mint amennyit kiosztottunk. Tehát jelentős mennyiségű memória vész kárba. Másrészt, ha az „elég nagy tömb” valójában nem elég nagy, a program összeomlik.
Mik azok a tömblisták?
A tömblistát dinamikus tömbnek tekinthetjük, amelynek mérete nőhet. Ezért a tömblisták ideálisak olyan helyzetekben való használatra, amikor nem ismerjük a deklarációkor szükséges elemek méretét. A Java-ban a tömblisták csak objektumokat tartalmazhatnak, primitív típusokat közvetlenül nem (a primitív típusokat elhelyezheti egy objektumon belül, vagy használhatja a primitív típusok burkoló osztályait). Általában a tömblisták rendelkeznek beszúrási, törlési és keresési módszerekkel. Egy elem elérésének időbonyolultsága o(1), míg a beillesztés és törlés időbonyolultsága o(n). A Java-ban a tömblisták bejárhatók foreach ciklusok, iterátorok vagy egyszerűen az indexek használatával.
Mi a különbség a tömbök és a tömblisták között
Bár a tömbök és a tömblisták hasonlóak abban az értelemben, hogy mindkettő elemgyűjtemény tárolására szolgál, definíciójukban különböznek. A tömb méretét meg kell adni egy tömb definiálásakor, de a tényleges méret ismerete nélkül is megadhat egy tömblistát. A tömblistához a definiálás után is hozzáadhat elemeket, de ez tömbök esetén 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 primitív típusok tárolására. De ha olyan adatstruktúrára van szüksége, amely változtathatja a méretét, akkor a tömblista lenne a legjobb választás.