Összehasonlító táblázat
Az összehasonlítás alapja | Lista | Tömb lista |
---|---|---|
Alapvető | A lista egy interfész | Az ArrayList egy szabványos gyűjteményosztály. |
Szintaxis | interfész lista | osztály ArrayList |
Meghosszabbítása / Munkagép | A lista interfész kiterjeszti a gyűjtemény keretrendszerét. | Az ArrayList kiterjeszti az AbstractList és a List Interface alkalmazást. |
névtér | System.Collections.Generic. | System.Collections. |
Munka | Az elemszámokhoz társított elemek (objektumok) listájának létrehozására szolgál. | Az ArrayList egy objektumokat tartalmazó dinamikus tömb létrehozására szolgál. |
A lista meghatározása
A lista olyan felület, amely kiterjeszti a gyűjtemény keretrendszerét. A listafelület leírja az egymás után elrendezett elemek gyűjteményét. A listafelületet az alábbi szabványos gyűjteményosztályok valósítják meg: ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . A lista interfész olyan elemeket tartalmaz, amelyek indexszámukhoz kapcsolódnak. A listában lévő elemhez hozzáférhet egy elemhez (index). A List interfész segítségével létrehozott lista nulla alapú indexgel kezdődik.
A Gyűjtemény keretrendszer által örökölt módszerek mellett a List felület is meghatározza saját módszerét. A List interfész által hozzáadott módszerek: (int, E) és addAll (int, Collection) . Ezek a módszerek egy elemet adnak a listához indexük alapján. Ha a módszer nem tudja módosítani a listát, akkor a listán belüli módszerek kivételezhetnek, mint például az UnsupportedOperationException . Ha egy listában lévő egyik objektum nem kompatibilis egy másik objektummal a listában, akkor a ClassCastException dobódik.Null elem nem engedélyezett a listában, ha megpróbál egy null objektumot beilleszteni a listába, NullPointerException dob.
A listából egy elemet kaphat a get () módszer használatával. A listában lévő elem értékét beállíthatja a () módszerrel. Az allistát a listából is használhatja egy metóduslista () segítségével . A lista helyett kényelmessé válik az allistán való működés.
Az ArrayList meghatározása
Az egyik szabványos Gyűjtemény osztály az ArrayList, amely kiterjeszti a AbstractList osztályt és végrehajtja a List interfészt. Az ArrayList osztályt olyan dinamikus tömbök létrehozására használják, amelyek szükség esetén növekednek és zsugorodnak. Az ArrayList osztály segítségével létrehozott lista nem más, mint az objektumok tömbje. Java-ban a standard tömb fix hosszúságú, ezért előbb meg kell ismernie a tömb méretét. De előfordulhat, hogy esetleg nem tudja, hogy a tömb hossza a futási időig tart. Ezért a Gyűjtemény keretrendszer bevezette az ArrayList osztályt a probléma leküzdéséhez.
Az ArrayList olyan konstruktorokkal rendelkezik, amelyek intenzív kapacitással hozzák létre a tömböt. Annak ellenére, hogy az ArrayList osztály objektumának kapacitása automatikusan növekszik, ha az elemek hozzáadódnak a tömbhöz, mégis manuálisan növelheti az ArrayList objektum kapacitását a módszerrel biztosítja a kapacitást () . Jobb, ha kezdetben a tömb kapacitását növeli ahelyett, hogy később a memóriát újra osztaná. Mivel az újraelosztás költségesebb, mint a memória egyidejű kiosztása.
A lista és az ArrayList közötti különbségek
- A List és az ArrayList között az egyik legfontosabb különbség, hogy a lista egy interfész, és az ArrayList egy szabványos gyűjteményosztály.
- A List interfész kiterjeszti a Collection keretrendszert, míg az ArrayList kiterjeszti a AbstractList osztályt és végrehajtja a List interfészeket.
- A List interfész névtér System.Collection.Generic, míg az ArrayList névtér System.Collection.
- A lista interfész olyan elemek gyűjteményét hozza létre, amelyek egy sorrendben vannak tárolva, és az indexszám alapján azonosítják vagy hozzáférik. Másrészt az ArrayList olyan objektumok tömböt hoz létre, ahol a tömb dinamikusan növekedhet, ha szükséges.
Következtetés:
Az ArrayList leküzdi a statikus tömböt a Java szabványban, azaz a tömb nem hozhat létre méretet, ha létrejön. Ha egy tömböt ArrayList segítségével hoz létre, akkor létrejön egy dinamikus tömb, amely szükség esetén növekszik és mérete csökkenhet. Az ArrayList szabványos gyűjteményosztály kiterjeszti a List interfészt.