Különbségek az Array és az ArrayList között

Az Array és az ArrayList fontos adatstruktúrák, amelyeket számos elem tárolására és feldolgozására használnak. De vannak kulcsfontosságú különbségek közöttük. A jó programozónak tisztában kell lennie a közti összehasonlításokkal, hogy hatékonyan eldöntse, hogy mikor és miért használja.

Sor

A tömb egy adatszerkezet, amelyben tárolhatunk egy adott méretű, hasonló típusú elemeket. Például egész típusú tömb, karakterlánc típusú tömb stb. Ezért a Java normál tömbje statikus adatszerkezet.

Tömb lista

Az ArrayList egy dinamikus adatstruktúra, amelybe elemeket lehet hozzáadni és eltávolítani a listából. Tehát ha nem biztos benne, hogy hány elem lesz a tömbben, ez a dinamikus adatszerkezet megtakarít.

Ebben a cikkben megvitatjuk az Array és az ArrayList közötti különbségeket a java-ban.

Példa a Array és az ArrayList megértésére

A tömb egy adatszerkezet, amelyben tárolhatunk egy adott típusú rögzített méretű, hasonló típusú elemeket.

Kód példa:

Hozzunk létre egy tömböt, amely öt elemből áll. Átjárjuk rajtuk keresztül a hurok használatával

Az ArrayList egy dinamikus adatstruktúra, amelybe elemeket lehet hozzáadni és eltávolítani a listából. Tehát ha nem biztos benne, hogy hány elem lesz a tömbben, ez a dinamikus adatszerkezet megtakarít.

Kód példa:

Head and Head különbségek az Array és az ArrayList között (Infographics)

Az alábbiakban bemutatjuk a legfontosabb különbségeket az Array és az ArrayList között:

Főbb különbségek az Array és az ArrayList között Java-ban

1. Rugalmasság

A tömb statikus adatszerkezet. Miután meghatározta a tömb méretét, nem módosíthatja annak méretét. Ezért egy normál tömb Java-ban statikus adatszerkezet, mivel a tömb kezdeti mérete rögzített.

Másrészt az ArrayList mérete rugalmas. Elemeket felvehet vagy eltávolíthat a listából a kényelme szerint. Miközben az ArrayList elemeket eltávolítjuk, nullát rendelünk az indexhez, amelynek értékét eltávolítottuk, és a teljes index értékét automatikusan egy fokozat csökkenti. Hasonló a kiegészítésre is.

2. Végrehajtás

A tömb olyan adatszerkezet, amelyben tárolhatunk egy adott típusú rögzített méretű, hasonló típusú elemeket. Az ArrayList egy dinamikus adatstruktúra, amelybe elemeket lehet hozzáadni és eltávolítani a listából. Valójában az ArrayList egy Java tömb segítségével valósul meg. Az ArrayList () metódus használatához importálnia kell a java.util.ArrayList csomagot az ArrayList objektum létrehozásához.

Példa Array kódrészletére

Példakód az ArrayList kódrészletéről

3. Teljesítmény

Noha az ArrayList alapvetően az Array-n alapul, láthatunk teljesítménybeli különbségeket közöttük. Ennek oka az ArrayList tárolási típusa és funkcionalitása. Teljesítménybeli különbségeket látunk a CPU ideje és a memória felhasználása szempontjából. Az elvégzett műveletektől függően az Array és az ArrayList teljesítménye változhat:

Az ArrayList több memóriát igényel tárolási célokra, mint egy tömb. Ennek oka az, hogy hasonló objektumok tárolása több memóriát igényel, mint a hasonló primitív típusú változók tárolása.

átméretezés () művelet: Az ArrayList automatikus átméretezést használ, ahol ideiglenes tömb jön létre az elemek átmásolására a régi tömbből egy új tömbbe. Ez lelassítja az általános teljesítményt.

get () művelet: Az index alapú hozzáféréshez mind az ArrayList, mind a tömb azonos teljesítményű, mivel ehhez állandó idő szükséges.

add () művelet: Itt látjuk a legfontosabb különbséget, hogy egy új elem hozzáadása az ArrayList-ben két műveletet igényel belsőleg: Másolás és átméretezés. Az ArrayList kiegészítése új tömböt hoz létre a háttérben, és másolja az elemeket a régiból egy új tömbbe.

4. Primitívumok

Egy tömb mind primitív, mind objektumtípus elemeket képes tárolni. Másrészt az ArrayList nem képes primitív típusokat tárolni; csak azonos típusú objektumokat képes tárolni.

Akkor hogyan tárolhatunk egész értékeket egy ArrayList-ben?

A válasz a JVM autoboxoló képessége. Az Autoboxing belsőleg átalakítja primitív ekvivalens objektumainak.

Például:

Ezért az autobox a dolgok alatt belül teljesít

5. Típus biztonság

Egy tömb csak hasonló típusú elemeket képes tárolni. Ha különféle típusú elemeket szeretne a megadottól eltérő tömbben tárolni, akkor az ArrayStoreException dobja el a tömb objektumának létrehozásakor. Ezt a kivételt futásidejűleg dobják el, mivel a tömb tehát nem típusbiztonságos; nincs tömörítési idő ellenőrzés a tömbnél.

Például:

Másrészt az ArrayList típusbiztonságos, mivel biztosítja a generikus gyógyszerek általi biztonságot. A Generics lehetővé teszi a fordító számára, hogy ellenőrizze, hogy van-e bármilyen eltérés a típusban a fordítás során.

6. Az értékek megismétlése

Az ArrayList az iterator () metódust használja a gyűjtemény létrehozásához. Ezután egy rövid hurok használatával az elemeket egyenként átjárjuk és kinyomtatjuk az értékeket.

Másrészt hurokhoz vagy minden hurokhoz egy tömbön keresztül iterálhatunk.

7. Hossz

Számos használati esetben szükség lehet a teljes tömb méretére. Az Arraylist esetében ez a számítás meglehetősen egyértelmű. ArrayList hosszúságot kaphatunk a size () módszer használatával.

Másrészt minden tömb objektumának hossza változóval rendelkezik, amely visszatér a tömb hosszának.

Például:

8. Elemek hozzáadása

Hozzáadás vagy beillesztés lehetséges az ArrayList alkalmazásban, mivel ez egy dinamikus adatszerkezet. Az add () metódust felhasználhatjuk az elemek beillesztésére az ArrayListbe annak létrehozása után.

Másrészt a tömb mérete rögzített. Elemeket hozzárendeléssel beszúrhatunk egy tömbbe. Nem tudunk dinamikusan új elemeket hozzáadni a tömb méretén túl.

Például:

9. Mérete

Az ArrayList egydimenziós. Míg a tömb többdimenziós lehet.

Például:

Array és ArrayList - Összehasonlító táblázat

Beszéljük meg az Array és az ArrayList legfelső összehasonlítását

Az összehasonlítás alapjaSorTömb lista
RugalmasságA tömb statikus adatstruktúraAz ArrayList egy dinamikus adatstruktúra
Primitivesmind primitív, mind objektumtípus elemeket képes tárolnicsak azonos típusú objektumokat tárolhat.
Típus biztonságA tömb csak hasonló típusú elemeket képes tárolni. Ellenkező esetben az ArrayStoreException dobja el a tömb objektumának létrehozásakor.Az ArrayList típusbiztonságos, mivel biztosítja a típusbiztonságot a generikus gyógyszerek által.
Az értékek megismétlésehasználja a hurokhoz vagy minden hurokhoz iteráció eléréséhez.Az iterator () metódust használja a gyűjtemény létrehozásához
Elemek hozzáadásabeilleszthet elemeket egy tömbbe rendeléssel.használja az add () metódust az elemek beszúrásához az ArrayList-be

Dimenziótöbbdimenziósegydimenziós

Összegzés-Array vs ArrayList

Mindez a Java-ban található tömb és az ArrayList közötti fontos különbségtételre vonatkozik. A legfontosabb különbséget, amelyet szem előtt kell tartani, az a tömb statikus, míg az ArrayList dinamikus jellegű. Elsődlegesen e megkülönböztetés alapján tömböt kell használnia, ha felismeri az előző méreteket, ha nem biztos benne, akkor egyszerűen csak használja az ArrayList alkalmazást.

Ajánlott cikkek

Ez egy útmutató az Array vs ArrayList oldalhoz. Itt tárgyaljuk az Array vs ArrayList kulcsfontosságú különbségeket az infographics, példák és összehasonlító táblázat segítségével. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Java Vector vs ArrayList
  2. C # tömb vs lista
  3. C vs Java
  4. A tömb előnyei
  5. Iterator Java-ban
  6. A Python hurkok előnyei Példa

Kategória: