A rétegek és az arraylisták közötti különbség
Arrays vs Arraylists
Arrays a leggyakrabban használt adatszerkezet elemek gyűjteményének tárolására. A legtöbb programnyelv olyan módszereket kínál, amelyek könnyen kijelölhetik a tömböket és a hozzáférési elemeket a tömbökben. Az arraylist dinamikus tömbként tekinthetjük meg, amely méretük növekedhet. Emiatt a programozónak nem kell ismernie az arraylist méretét, amikor meghatározza.
Mi az Arrays?
Az 1. ábrán látható egy kóddarab, amelyet jellemzően egy tömb értékeinek kijelölésére és hozzárendelésére használnak. A 2. ábra azt mutatja be, hogyan fog kinézni egy tömb a memóriában.
int értékek [5]; é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 kijelzéséhez és hozzárendeléséhez
100 | 101 | 102 | 103 | 104 |
Index: 0 | 1 | 2 < 3 | 4 | |
2. ábra: A Kód fölött tárolt tömböt definiál egy olyan tömböt, amely 5 egész számot képes tárolni, és a 0 és 4 közötti indexeket használják. Egy tömb egyik fontos tulajdonsága, az egész tömb egyetlen memóriablokkként van elosztva, és minden elemnek megvan a maga helyzete a tömbben. A tömb meghatározása után a mérete rögzített. Tehát ha nem vagy biztos benne, hogy a tömb mérete fordítási időben van, akkor elég nagy méretű tömböt kell meghatároznod ahhoz, hogy biztonságban legyen. De a legtöbb esetben valójában kevés számú elemet fogunk használni, mint amit kiosztottunk. Tehát jelentős mennyiségű memória valójában elpazarolt. Másrészt, ha a "elég nagy tömb" nem elég nagy, a program összeomlik.
Mi az arraylisták?
Az angyalisták dinamikus tömbként tekinthetők meg, amely méretük növekedhet. Ezért az arraylisták ideálisak abban az esetben, ha nem ismerik a nyilatkozat idején szükséges elemek méretét. A Java-ban az arraylisták csak objektumokat tarthatnak, nem képesek primitív típusokat közvetlenül megtartani (az elsődleges típusokat egy objektumba helyezhetjük, vagy a primitív típusok csomagolási osztályait használhatjuk). Általában az arraylistáknak módszerei vannak a beillesztés, a törlés és a keresés végrehajtására. Az elemekhez való hozzáférés időbeni bonyolultsága o (1), míg a beillesztés és törlés idővel komplexitása o (n). A Java-ban a hurkolók átjárhatók foreach hurkok, iterátorok vagy egyszerűen az indexek használatával.
Mi a különbség a tömbök és az arraylisták között
Bár a tömbök és az arraylisták hasonlóak abban az értelemben, hogy mindkettő az elemek gyűjteményének tárolására szolgál, különböznek azok definíciójában. A tömb méretét meg kell adni, ha tömb van definiálva, de meghatározhat egy arraylist a tényleges méret ismerete nélkül. Elemeket adhat hozzá egy ütközőhöz, miután megadták, és ez nem lehetséges a tömbökkel.De a Java-ban az arraylisták nem rendelkezhetnek primitív típusokkal, de a tömbök felhasználhatók primitív típusok megtartására. De ha olyan adatszerkezetre van szüksége, amely méretét megváltoztathatja, akkor a legjobb megoldás az oktató.