Soovitatav, 2024

Toimetaja Valik

Nimekirja ja ArrayListi erinevus Java-is

Nimekiri ja ArrayList on kogumise raamistiku liikmed. Nimekiri on elementide kogum järjestuses, kus iga element on objekt ja elemendid on ligipääsetavad seal positsiooniga (indeks). ArrayList loob dünaamilise hulga objekte, mis suurendavad või vähendavad suurust, kui see on vajalik. Esmane erinevus loendi ja ArrayListi vahel on see, et nimekiri on liides ja ArrayList on klass. Uurige allpool toodud võrdluskaardi abil loendi ja ArrayListi vahelist erinevust.

Võrdluskaart

Võrdluse alusNimekiriArrayList
PõhilineLoend on liidesArrayList on tavaline kollektsiooniklass.
Süntaksiliidese loendklass ArrayList
Laiendage / rakendageNimekirja liides laiendab kogumise raamistikku.ArrayList laiendab AbstractListi ja rakendab List Interface'i.
NimediruumSystem.Collections.Generic.System.Collections.
TööSeda kasutatakse nende elementide (objektide) loendi loomiseks, mis on seotud nende indeksnumbritega.ArrayListi kasutatakse objektide sisaldava dünaamilise massiivi loomiseks.

Nimekirja määratlus

Loetelu on liides, mis laiendab kogumise raamistikku. Loendiliides kirjeldab järjestikuste elementide kogumit. Loendiliidest rakendatakse järgmiste standardsete kogumisklassidega nagu ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Loendiliidesel on elemendid, mis on seotud nende indeksinumbritega. Loendi elementi saate kasutada loendis oleva asukoha (indeks) järgi. Nimekirja liidesega loodud loend algab nullil põhineva indeksiga.

Lisaks kogumise raamistiku poolt päritud meetoditele määratleb Listi liides ka mõne oma meetodi. Loendiliidese poolt lisatud meetodid on: lisada (int, E) ja addAll (int, Collection) . Need meetodid lisavad loendisse elemendi oma indeksi järgi. Loetelus olevad meetodid võivad visata erandit nagu UnsupportedOperationException, kui meetod ei saa nimekirja muuta. Kui loendis olev üks objekt on loendis mõne teise objektiga kokkusobimatu, siis visatakse ClassCastException.Null-elemendid ei ole loendis lubatud, kui proovite loendis nullobjekti sisestada, NullPointerException on visatud.

Elemendi saab loendist, kasutades meetodit get () . Saate määrata loendi elemendi väärtuse, kasutades seadistatud () meetodit. Alamnimekirja saate ka loendist meetodi alamloendi () abil . Nimekirja asemel on mugav kasutada alamnimekirja.

ArrayListi määratlus

Üks standardsetest kollektsiooniklassidest on ArrayList, mis laiendab AbstractListi klassi ja rakendab ka Listi liidest. ArrayListi klassi kasutatakse dünaamiliste massiivide loomiseks, mis kasvavad ja vähenevad, kui see on vajalik. ArrayList klassi abil loodud loend on vaid objektide massiiv. Java puhul on standardmassil fikseeritud pikkus, seega peate eelnevalt teadma massiivi suurust. Kuid see võib juhtuda, et te ei pruugi teada, millist massiivi vajate, kuni ajani. Sellest tulenevalt tutvustas kogumise raamistik selle probleemi lahendamiseks ArrayListi klassi.

ArrayListil on konstruktorid, mis loovad massiivi oma põhiomadustega. Kuigi klass ArrayListi objekti maht suureneb massiivi elementide lisamisel automaatselt, saate ArrayListi objekti mahtu käsitsi suurendada, kasutades meetodit „ Võimekus“ () . Mälu hiljem ümberjaotamise asemel on parem massiivi mahtu suurendada. Kuna ümberjaotamine on kallim kui mälu korraga jaotamine.

Peamised erinevused loendi ja ArrayListi vahel

  1. Üks tähtsamaid erinevusi loendi ja ArrayListi vahel on see, et nimekiri on liides ja ArrayList on tavaline kollektsiooniklass.
  2. Loendiliides laiendab kogumise raamistikku, samas kui ArrayList laiendab AbstractList klassi ja rakendab Listi liideseid.
  3. Nimeliidese loendiliideseks on System.Collection.Generic, samas kui ArrayListi nimeruumi on System.Collection .
  4. Loendiliides loob kogumit elementidest, mis on salvestatud jadanumbriga ja mida identifitseeritakse või neile pääsevad juurde nende indeksnumber. Teisest küljest loob ArrayList objektide massiivi, kus massiiv võib vajadusel dünaamiliselt kasvada.

Järeldus:

ArrayList ületab staatilise massiivi standardses Java-süsteemis, st massiiv ei saa pärast selle loomist suurendada. Kui massiiv luuakse ArrayListiga, luuakse dünaamiline massiiv, mis võib vajadusel kasvada ja vähendada. Standardne kollektsiooniklass ArrayList laiendab nimekirja liidest.

Top