Különbség a Array és a ArrayList között A különbség

Anonim

Mi az Array és ArrayList?

Mind a Array, mind az ArrayList olyan indexalapú adatstruktúrák, amelyeket gyakran használnak a Java programokban. Konkrétabban elmondható, hogy az ArrayList-t belsőleg a tömbök támogatják, azonban a kettő közötti különbség megértése kulcsfontosságú ahhoz, hogy nagy Java fejlesztővé váljon. Ez elég alapos lépés, hogy kezdődjenek, különösen azok a kezdők, akik már megkezdték a kódolást. Miközben mindkettőt Java-elemek tárolására használják, amelyek lehetnek primitívek vagy objektumok, a funkcionalitás és a teljesítmény tekintetében a különbségek méltányos részét teszik ki. A két fő különbség az, hogy az Array statikus, míg a ArrayList a természetben dinamikus. Ez a cikk összehasonlítja a kettőt különböző szempontok alapján, hogy egymás között választhasson.

->

Az Array és az Arraylist közötti különbség

  1. Resizable

A két adatszerkezet egyik legfőbb és észrevehető különbsége az, hogy az Array statikus jellegű, ami azt jelenti, hogy állandó hosszúságú adattípus Az ArrayList dinamikus, ami azt jelenti, hogy változó hosszúságú adatszerkezet. Technikai szempontból a Array hosszát nem lehet megváltoztatni vagy módosítani a Array objektum létrehozása után. Ez ugyanazon adattípusú elemek szekvenciális gyűjtését tartalmazza. A Java tömbök másképpen működnek, mint a C / C ++-ban. A ArrayList viszont átméretezheti magát, és a tömbök nőhetnek, amennyire szükségük van. Mivel dinamikus adatszerkezet, az elemek hozzáadhatók és eltávolíthatók a listából.

  1. Generics

Nem hozhat létre Java-alapú interfészek osztályainak csoportjait, így a tömbök és a generikumok nem járulnak kézzel, ami lehetetlenné teszi a Generic Array létrehozását az egyik alapvető ok miatt, hogy a tömbök kovariánsak míg a generikumok invariánsak. Bár az Array egy rögzített hosszúságú adatszerkezet, ugyanazon osztály vagy primitív objektumokat tartalmaz az adott adattípusban. Tehát ha megpróbál különböző adattípusokat tárolni, mint az Array objektum létrehozásakor megadott, akkor egyszerűen "ArrayStoreException" -ot dob. A ArrayList viszont támogatja a Generics-ot, hogy biztosítsa a típusbiztonságot.

  1. Primitívek

A primitív adattípusok, például az int, a double, a long és a char nem engedélyezettek a ArrayListben. Ez inkább azt jelenti, hogy objektumok és primitívek nem tekinthetők Java-objektumoknak. A rétegek viszont tartalmazhatnak primitíveket és objektumokat Java-ban, mert ez az egyik leghatékonyabb adatstruktúra Java objektumok tárolására. Ez egy aggregált adattípus, amely olyan objektumok tárolására készült, amelyek lehetnek azonosak vagy különbözőek.

  1. Hossza

Ahhoz, hogy megkaphassa az Array hosszát, a kódnak hozzáférnie kell a hossza attribútumhoz, mert tudnia kell a hosszt az Array műveletek végrehajtásához.Míg a ArrayList a méret () metódus segítségével határozza meg a ArrayList méretét, ez meglehetősen különbözik az Array hosszának meghatározásától. A size () metódus attribútum határozza meg az ArrayList elemeinek számát, ami viszont az ArrayList kapacitása.

Példa :

nyilvános osztály ArrayLengthTest {

nyilvános statikus void main (String [] args) {

ArrayList arrList = új ArrayList ();

String [] items = {"Egy", "Két", "Három"};

a (String str: elemekhez) {

arrList. adjunk hozzá (str);

}

int méret = tételek. méret();

Rendszer. ki. println (méret);

}

}

  1. Implementáció

Az Array dinamikusan létrehozott Java natív programozási komponens, és hozzárendelési operátort használ az elemek tárolására, míg a ArrayList add () attribútumot helyez be az elemek beillesztésébe. Az ArrayList a Java gyűjtemény keretéből származó osztály, amely az elemek eléréséhez és módosításához meghatározott metódusokat alkalmaz. Az ArrayList mérete dinamikusan növelhető vagy csökkenthető. A tömb elemei egymással összefüggő memóriahelyen tárolódnak, és mérete állandó marad.

  1. Performance

Míg mindkét adatszerkezet hasonló teljesítményt nyújt, mint ahogyan a ArrayList-et az Arrays támogatja, az egyiknek van egy kis pereme a másik fölött, főként a CPU-idő és a memóriahasználat szempontjából. Tegyük fel, hogy ha tudod a tömb méretét, akkor valószínűleg az ArrayList-el fogsz menni. Azonban az Array-en keresztül történő iterálás egy kicsit gyorsabb, mint az ArrayList feletti iteráció. Ha a program számos primitívumot tartalmaz, akkor a tömb jelentősen jobb teljesítményt nyújt, mint az ArrayList, mind az idő, mind a memória tekintetében. A tömbök olyan alacsony szintű programozási nyelvek, amelyek a gyűjtemény megvalósításában használhatók. A teljesítmény azonban az elvégzett művelettől függően változhat.

Array Vs. Arraylist

Array ArrayList
Array egy rögzített hosszúságú adatszerkezet, amelynek hossza nem módosítható a tömb objektum létrehozásakor. A ArrayList a természetben dinamikus, ami azt jelenti, hogy szükség esetén megváltoztathatja magát.
A tömb mérete statikus marad a program egészében. Az ArrayList mérete dinamikusan növekszik a terhelés és a kapacitás függvényében.
A hozzárendelési operátort az elemek tárolására használja. Az add () attribútum az elemek beillesztésére szolgál.
Tartalmazhat primitíveket, valamint azonos vagy különböző adattípusú objektumokat. A primitívek nem engedélyezettek a ArrayListben. Ez csak objektumtípusokat tartalmazhat.
A rétegek és a Generics nem jár kéz a kézben. Generics megengedett a ArrayListben.
A tömbök többdimenziósak lehetnek. A ArrayList egydimenziós.
Ez egy natív programozási komponens, ahol az elemeket egymással összefüggő memóriahelyeken tárolják. Ez egy osztály a Java gyűjtemények keretéből, ahol az objektumokat soha nem tárolják egymással összefüggő helyeken.
A hossztartomány meghatározza az Array hosszúságát. A méret () metódus meghatározza az ArrayList méretét.
Kevesebb memóriát vesz igénybe, mint a ArrayList, hogy meghatározott elemeket vagy objektumokat tároljon. Több memóriát tárol, mint az Array objektumok tárolására.
A tömbön át történő átugrás gyorsabb, mint az ArrayList feletti ismétlése. Az ArrayList feletti áthelyezés lényegesen lassabb a teljesítmény szempontjából.

Összegzés

Bár egyesek úgy gondolják, hogy egy program végrehajtási tömbjei gyorsabban tudnak eredményeket elérni, mint az ArrayListekkel, mert a tömbök alacsony szintű adatszerkezet, a teljesítmény függhet attól, újra teljesít. Nos, az Array hossza rögzített, míg a ArrayList méretét dinamikusan lehet növelni vagy csökkenteni, ezért az ArrayList a funkcionalitás szempontjából egy kis élen van az Array-nál. A különbségek ellenére azonban vannak hasonlóságai is. Mindkettő Java alapú adatstruktúrák, amelyek lehetővé teszik objektumok tárolását, és mindkettő lehetővé teszi a null értékek és a másolatok megadását. Nos, ha korábban ismered a tárgyak méretét, akkor törekedj egy tömbre, és ha nem biztos a méretedben, menj az ArrayList-be.