Erinevus nimekirja ja ArrayListi vahel Java-s

Autor: Laura McKinney
Loomise Kuupäev: 2 Aprill 2021
Värskenduse Kuupäev: 15 Mai 2024
Anonim
Java 17 and Windows 11 release. Paid Docker and Apple’s new MacBook [MJC News #9]
Videot: Java 17 and Windows 11 release. Paid Docker and Apple’s new MacBook [MJC News #9]

Sisu


Loend ja ArrayList on Kogumisraamistiku liikmed. Loend on elementide kogum jadas, kus iga element on objekt ja elementidele pääseb juurde positsiooni abil (register). ArrayList loob dünaamilise objektide massiivi, mis vajadusel suurendab või vähendab suurust. Esmane erinevus nimekirja ja ArrayListi vahel on see Loend on liides ja ArrayList on klass. Uurime allpool toodud võrdlusdiagrammi abil loendi ja ArrayListi erinevust.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusLoendArrayList
PõhilineLoend on liidesArrayList on tavaline kollektsiooniklass.
Süntaksliidese loendklass ArrayList
Laiendage / rakendageLoendi liides laiendab kogumisraamistikku.ArrayList laiendab AbstractList ja juurutab loendiliidese.
NimeruumSystem.Collections.Generic.Süsteem.Kogud.
TööSeda kasutatakse nende registrinumbritega seotud elementide (objektide) loendi koostamiseks.ArrayListit kasutatakse objektide sisaldava dünaamilise massiivi loomiseks.


Loendi määratlus

Nimekiri on liides mis laiendab Kollektsioon raamistik. Loendiliides kirjeldab järjestikku paigutatud elementide kogumit. Loendiliidest rakendatakse järgmiste standardsete kogumisklasside abil nagu ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Loendiliides sisaldab elemente, mis on seotud nende indeksinumbritega. Loendis olevale elemendile pääsete juurde selle asukoha järgi (indeks) loendis. Loendi liidese abil loodud loend algab nullil põhineva registriga.

Lisaks kogumisraamistiku päritud meetoditele määratleb loendiliides ka mõne oma meetodi. Loendi liidese lisatud meetodid on järgmised: lisa (int, E) ja addAll (int, kollektsioon). Need meetodid lisavad elemendi loendisse nende indeksi järgi. Loendisisesed meetodid võivad põhjustada erandi nagu Toetamata operatsioonErand kui meetod ei suuda loetelu muuta. Kui üks loendis olev objekt ei sobi teise loendis oleva objektiga, siis ClassCastException on visatud.Null elemente pole loendis lubatud, kui proovite loendisse lisada null objekti, NullPointerException visatakse.


Elemendi saate loendist hankida kasutades saada () meetod. Elemendi väärtuse saate loendis määrata kasutades komplekt () meetod. Alamloendi saate loendist ka meetodi abil alamloend (). Alamloendis on mugav tegutseda loendi asemel.

Määratlus ArrayList

Üks tavapärastest Kogumisklassidest on ArrayList, mis laieneb AbstractList klassi ja rakendab ka Loend liides. Klassi ArrayList kasutatakse dünaamiliste massiivide loomiseks, mis kasvavad ja kahanevad vajaduse korral. Klassi ArrayList abil loodud nimekiri pole midagi muud kui objektide massiiv. Jaavas on standardsel massiivil fikseeritud pikkus, seega peate massiivi suurust eelnevalt teadma. Kuid võib juhtuda, et te ei tea kuni käivitusajani massiivi vajalikku pikkust. Seetõttu tutvustas kogumisraamistik ArrayList klassi selle probleemi lahendamiseks.

ArrayListil on konstruktorid, mis loovad massiivi selle sisemise võimekusega. Ehkki klassi ArrayList objekti maht suureneb automaatselt, kui elemendid massiivi lisatakse, saate siiski meetodit ArrayList objekti mahtu käsitsi suurendada tagamamaht (). Parem on massiivi mahtu esialgu suurendada, selle asemel, et mälu hiljem ümber paigutada. Kuna ümberpaigutamine on kallim kui mälu korraga eraldamine.

  1. Üks olulisemaid erinevusi loendi ja ArrayListi vahel on see, et loend on liides ja ArrayList on standardkogu klass.
  2. Loendi liides laiendab Kollektsioon ArrayList laieneb AbstractList Klass ja see rakendab Loend liidesed.
  3. Loendi liidese nimeruum on System.Collection.Generic arvestades, et ArrayListi nimeruum on Süsteem.Kogumine.
  4. Loendiliides loob elementide kogumi, mida salvestatakse jadas ja mille indeksnumber identifitseerib või millele juurde pääseb. Teisest küljest loob ArrayList objektide massiivi, kus massiiv võib vajadusel dünaamiliselt kasvada.

Järeldus:

Massiiviloend lahendab staatilise massiivi küsimuse tavalises Java-s, st massiivi suurus ei saa selle loomisel kasvada. Kui massiivi luuakse programmi ArrayList abil, luuakse dünaamiline massiiv, mis võib vajaduse korral kasvada ja kahaneda. Standardne kollektsiooniklass ArrayList laiendab loendiliidest.