Különbség a lista és az ArrayList között Java-ban

Szerző: Laura McKinney
A Teremtés Dátuma: 2 Április 2021
Frissítés Dátuma: 15 Lehet 2024
Anonim
Különbség a lista és az ArrayList között Java-ban - Technológia
Különbség a lista és az ArrayList között Java-ban - Technológia

Tartalom


A List és az ArrayList a Collection keretrendszer tagjai. A lista egy elemgyűjtemény egy sorrendben, ahol minden elem egy objektum, és az elemek hozzáigazíthatók ott (index). Az ArrayList létrehoz egy dinamikus objektumtömböt, amely szükség esetén növeli vagy csökkenti a méretét. Az elsődleges különbség a Lista és az ArrayList között az Lista egy felület és Tömb lista egy osztály. Vizsgáljuk meg a lista és az ArrayList közötti különbséget az alább bemutatott összehasonlító táblázat segítségével.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaListaTömb lista
AlapvetőA lista egy interfészAz ArrayList egy standard Gyűjtemény osztály.
Szintaxisfelület listaosztály ArrayList
Meghosszabbítása / MunkagépA lista interfész kibővíti a Collection Framework-t.Az ArrayList kiterjeszti az AbstractList elemet és végrehajtja a Lista felületet.
névtérSystem.Collections.Generic.System.Collections.
MunkaAz elemszámokhoz társított elemek (objektumok) listájának létrehozására szolgál.Az ArrayList objektumokat tartalmazó dinamikus tömb létrehozására szolgál.


A lista meghatározása

A lista egy felület amely kiterjeszti a Gyűjtemény keretrendszer. A lista interfész leírja az egymás után elrendezett elemek gyűjteményét. A lista felületet a következő szabványos gyűjtési osztályok, például a ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. A lista interfész tartalmaz elemeket, amelyek az indexszámukhoz vannak társítva. A listában szereplő elemhez a lista pozíciója (indexe) szerint férhet hozzá. A Lista felületen létrehozott lista nulla alapú indextel kezdődik.

A Gyűjtemény keretrendszer által örökölt módszereken kívül a Lista felület saját módszereket is meghatároz. A Lista felület által hozzáadott módszerek a következők: add (int, E) és addAll (int, gyűjtemény). Ezek a módszerek az indexükkel hozzáadnak egy elemet a listához. A listán szereplő módszerek kivételt tehetnek, például UnsupportedOperationException ha a módszer nem tudja módosítani a listát. Ha egy lista egyik objektuma nem kompatibilis a listában szereplő másik objektummal, akkor ClassCastException Null elemek nem engedélyezettek a listában, ha megkísérel null objektumot beszúrni a listába, NullPointerException eldobják.


Elemet szerezhet a listából a következővel: kap() eljárás. A listában egy elem értékét beállíthatja a készlet() eljárás. Az allistát a módszerrel is megszerezheti a listából allista (). Kényelmesebbé válik, ha listát használunk az allistán.

Az ArrayList meghatározása

Az egyik a Gyűjtemény osztályok közül az ArrayList, amely kiterjed AbstractList osztály, és végrehajtja a Lista felület. Az ArrayList osztályt 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. A Java-ban a standard tömb rögzített hosszúságú, tehát előre meg kell ismernie a tömb méretét. Előfordulhat, hogy előfordulhat, hogy a futtatás idejéig nem tudja, hogy a tömb milyen hosszúságú. Ezért a Collection Framework bevezette az ArrayList osztályt a probléma leküzdésére.

Az ArrayList olyan konstruktorokkal rendelkezik, amelyek létrehozják a tömböt a belső kapacitással. Noha az ArrayList osztályobjektum kapacitása automatikusan növekszik, amikor az elemeket hozzáadják a tömbhöz, az ArrayList objektum kapacitását manuálisan is megnövelheti a módszerrel ensureCapacity (). Jobb, ha kezdetben növeli a tömb kapacitását, ahelyett, hogy később újraosztja a memóriát. Mivel az újraelosztás költségesebb, mint a memória egyszeri elosztása.

  1. Az egyik legfontosabb különbség a Lista és az ArrayList között az, hogy a lista egy felület és az ArrayList egy standard Gyűjtemény osztály.
  2. A lista interfész kiterjeszti a Gyűjtemény keretrendszer, míg az ArrayList kiterjed AbstractList Osztály és végrehajtja Lista interfészek.
  3. A Lista felület névtere: System.Collection.Generic mivel az ArrayList névtere: System.Collection.
  4. A lista interfész létrehoz egy elemgyűjteményt, amelyet egy sorozatban tárolnak, és amelyek indexszámukkal azonosíthatók vagy hozzáférhetők. Másrészt az ArrayList objektumok tömbjét hoz létre, ahol a tömb szükség esetén dinamikusan növekedhet.

Következtetés:

Az ArrayList kiküszöböli a statikus tömb kérdését a normál Java-ban, azaz a tömb mérete létrehozása után nem növekszik. Ha egy tömböt az 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 csökkenhet. Az ArrayList szabványos Gyűjtemény osztály kibővíti a Lista felületet.