A rétegek és az arraylisták közötti különbség

Anonim

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ó.