Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp sąrašo ir „ArrayList“ Java sistemoje

Sąrašas ir „ArrayList“ yra „Collection“ sistemos nariai. Sąrašas yra elementų rinkinys sekoje, kurioje kiekvienas elementas yra objektas, o elementai pasiekiami ten esančia padėtimi (indeksu). „ArrayList“ sukuria dinamišką objektų masyvą, kuris prireikus padidina arba sumažina dydį. Pagrindinis skirtumas tarp „List“ ir „ArrayList“ yra tas, kad sąrašas yra sąsaja ir „ ArrayList“ yra klasė. Ištirsime skirtumą tarp sąrašo ir „ArrayList“ su žemiau pateikto palyginimo diagramos pagalba.

Palyginimo diagrama

Palyginimo pagrindasSąrašas„ArrayList“
PagrindinisSąrašas yra sąsaja„ArrayList“ yra standartinė kolekcijos klasė.
Sintaksėsąsajos sąrašasklasės ArrayList
Išplėsti / įdiegtiSąrašo sąsaja apima kolekcijų sistemą.„ArrayList“ praplečia „AbstractList“ ir įgyvendina „List Interface“.
Vardų sritisSystem.Collections.Generic.System.Collections.
DarbasJis naudojamas elementų (objektų), susietų su jų indeksų numeriais, sąrašui sukurti.„ArrayList“ naudojamas sukurti dinaminį masyvą, kuriame yra objektų.

Sąrašo apibrėžtis

Sąrašas yra sąsaja, kuri praplečia kolekcijos sistemą. Sąrašo sąsaja apibūdina nuosekliai išdėstytų elementų rinkinį. Sąrašo sąsaja įgyvendinama pagal tokias standartines kolekcijų klases kaip „ ArrayList“, „LinkedList“, „CopyOnWriteArrayList“, „Vector“, „Stack“ . Sąrašo sąsajoje yra elementų, susijusių su jų indeksų numeriais. Galite pasiekti sąrašo elementą pagal savo poziciją (indeksą) sąraše. Sąrašas, sukurtas naudojant Sąsajų sąsają, prasideda nuliu pagrįstu indeksu.

Be surinkimo sistemos paveldėtų metodų, Sąsajos sąsaja taip pat apibrėžia tam tikrą metodą. Sąrašo sąsaja pridedami metodai, pridėti (int, E) ir addAll (int, Collection) . Šie metodai į sąrašą įtraukia elementą pagal savo indeksą. Sąraše esantys metodai gali išskleisti tokią išimtį kaip „ UnsupportedOperationException“, jei metodas negali pakeisti sąrašo. Kai vienas objektas sąraše yra nesuderinamas su kitu sąraše esančiu objektu, tada ClassCastException yra išmestas.Norint elementų neįtraukti į sąrašą, sąraše neleidžiami visi elementai, NullPointerException yra išmesta.

Elementą iš sąrašo galite gauti naudojant metodą „ get ()“ . Galite nustatyti elemento reikšmę sąraše naudodami nustatytą () metodą. Sublistą taip pat galite gauti iš sąrašo, naudodami metodų sublistą () . Vietoj sąrašo jis tampa patogus naudoti po sąrašu.

„ArrayList“ apibrėžimas

Viena iš standartinių kolekcijų klasių yra „ArrayList“, kuri praplečia „ AbstractList“ klasę ir įgyvendina „ List“ sąsają. „ArrayList“ klasė naudojama kuriant dinamines masyvus, kurie auga ir susitraukia, kai to reikia. Sąrašas, sukurtas naudojant „ArrayList“ klasę, yra tik objektų masyvas. „Java“ standartinėje matricoje yra fiksuotas ilgis, todėl iš anksto turite žinoti masyvo dydį. Tačiau gali būti, kad jūs negalite žinoti, kokio ilgio masyvo reikia iki paleisties laiko. Taigi, surinkimo sistema pristatė „ArrayList“ klasę, kad įveiktų šią problemą.

„ArrayList“ turi konstruktorių, kurie sukuria masyvą su savo pagrindiniu pajėgumu. Nors klasės ArrayList objekto talpa automatiškai padidėja, kai elementai pridedami prie masyvo, vis tiek galite rankiniu būdu padidinti ArrayList objekto talpą, naudodami metodąCapacity () . Geriau iš pradžių padidinti masyvo talpą, o ne vėliau perskirstyti atmintį. Kadangi perskirstymas yra brangesnis nei atminties priskyrimas iš karto.

Pagrindiniai skirtumai tarp sąrašo ir „ArrayList“

  1. Vienas iš svarbiausių „List“ ir „ArrayList“ skirtumų yra tas sąsajos sąrašas ir „ArrayList“ yra standartinė kolekcijos klasė .
  2. Sąrašo sąsaja praplečia kolekcijos sistemą, o „ArrayList“ praplečia „ AbstractList“ klasę ir įgyvendina „ List“ sąsajas.
  3. Sąrašo sąsajos vardų sritis yra System.Collection.Generic, o ArrayList vardų sritis yra System.Collection .
  4. Sąrašo sąsaja sukuria elementų, saugomų sekoje, rinkinį, kuris identifikuojamas arba pasiekiamas pagal jų indekso numerį. Kita vertus, „ArrayList“ sukuria objektų masyvą, kur masyvas gali dinamiškai augti, kai to reikia.

Išvada:

„ArrayList“ įveikia standartinės „Java“ statinio masyvo problemą, ty, kai masyvas sukuriamas, jis negali augti. Kai masyvas sukuriamas naudojant „ArrayList“, sukuriama dinamiška masyvas, kuris, jei reikia, gali augti ir mažėti. Standartinė kolekcijos klasė ArrayList praplečia sąsajos sąrašą.

Top