Ero Java-luettelon ja ArrayListin välillä

Kirjoittaja: Laura McKinney
Luomispäivä: 2 Huhtikuu 2021
Päivityspäivä: 13 Saattaa 2024
Anonim
Ero Java-luettelon ja ArrayListin välillä - Tekniikka
Ero Java-luettelon ja ArrayListin välillä - Tekniikka

Sisältö


Lista ja ArrayList ovat Collection-kehyksen jäseniä. Lista on kokoelma elementtejä sekvenssissä, jossa kukin elementti on objekti ja elementteihin pääsee siellä sijainti (hakemisto). ArrayList luo dynaamisen objektiryhmän, jonka kokoa suurennetaan tai pienennetään tarvittaessa. Ensisijainen ero Listan ja ArrayListin välillä on se Lista on käyttöliittymä ja ArrayList on luokka. Tutkitaan eroa Listan ja ArrayListin välillä alla olevan vertailutaulun avulla.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetListaArrayList
perustiedotLista on käyttöliittymäArrayList on vakiokokoelmaluokka.
Syntaksikäyttöliittymäluetteloluokka ArrayList
Laajennetaan / ToteutaListarajapinta laajentaa keräyskehystä.ArrayList laajentaa AbstractList: ää ja toteuttaa luettelorajapinnan.
nimiavaruusSystem.Collections.Generic.System.Collections.
Tehdä työtäSitä käytetään luettelon luetteloon elementteistä (objekteista), jotka liittyvät niiden hakemistonumeroihin.ArrayList-sovellusta käytetään objektien sisältävän dynaamisen taulukon luomiseen.


Määritelmä luettelo

Lista on käyttöliittymä joka laajentaa Kokoelma puitteissa. Listarajapinta kuvaa elementtien kokoelmaa, joka on järjestetty peräkkäin. Listarajapinta toteutetaan seuraavilla standardikokoelmaluokilla, kuten ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Listarajapinnassa on elementtejä, jotka liittyvät niiden hakemistonumeroihin. Voit käyttää luettelossa olevaa elementtiä sen sijainnin (hakemiston) perusteella luettelossa. Lista-käyttöliittymällä luotu luettelo alkaa nollapohjaisella indeksillä.

Keräyskehyksen perimien menetelmien lisäksi Lista-käyttöliittymä määrittelee myös jonkin oman menetelmän. Lista-käyttöliittymän lisäämät menetelmät ovat, lisää (int, E) ja addAll (int, kokoelma). Nämä menetelmät lisäävät elementin luetteloon hakemistonsa perusteella. Luettelon sisäiset menetelmät saattavat johtaa poikkeukseen, kuten UnsupportedOperationException jos menetelmä ei pysty muuttamaan luetteloa. Kun yksi luettelossa oleva objekti ei ole yhteensopiva luettelossa olevan toisen objektin kanssa, niin ClassCastException ei ole luettelossa sallittu, jos yrität lisätä nollaobjektia luetteloon, NullPointerException heitetään.


Voit hankkia elementin luettelosta käyttämällä saada() menetelmä. Voit asettaa elementin arvon luettelossa käyttämällä sarja() menetelmä. Voit myös saada alaluettelon luettelosta menetelmällä alaluettelo (). Aluettelosta on kätevää toimia luettelon sijasta.

Määritelmä ArrayList

Yksi vakiokokoelluokista on ArrayList, joka laajenee AbstractList luokan ja toteuttaa myös Lista käyttöliittymä. ArrayList-luokkaa käytetään dynaamisten taulukkojen luomiseen, jotka kasvavat ja kutistuvat aina tarvittaessa. ArrayList-luokan avulla luotu luettelo on vain objektiryhmä. Java-ohjelmassa vakioryhmässä on kiinteä pituus, joten tiedät taulukon koon etukäteen. Mutta voi olla, että et välttämättä tiedä, mitä taulukon pituutta tarvitset ajonaikaan saakka. Siksi Collection-kehys esitteli ArrayList-luokan tämän ongelman ratkaisemiseksi.

ArrayListillä on rakentajia, jotka luovat taulukon alkuperäisellä kapasiteetillaan. Vaikka luokan ArrayList objektin kapasiteetti kasvaa automaattisesti, kun elementit lisätään taulukkoon, voit silti lisätä ArrayList-objektin kapasiteettia manuaalisesti menetelmällä ensureCapacity (). On parempi lisätä aluksi taulukon kapasiteettia sen sijaan, että muistia siirretään myöhemmin uudelleen. Koska uudelleenjako on kalliimpaa kuin muistin varaaminen kerralla.

  1. Yksi tärkeimmistä eroista Listan ja ArrayListin välillä on, että luettelo on käyttöliittymä ja ArrayList on vakiokokoelma luokka.
  2. Listarajapinta laajentaa Kokoelma kehys taas ArrayList laajenee AbstractList Luokka ja se toteuttaa Lista rajapintoja.
  3. Lista-käyttöliittymän nimitila on System.Collection.Generic taas ArrayList-nimitila on System.Collection.
  4. Listarajapinta luo elementtikokoelman, joka tallennetaan sarjassa ja jotka tunnistetaan tai joihin pääsee hakemistonumeron perusteella. Toisaalta ArrayList luo joukon objekteja, joissa taulukko voi dynaamisesti kasvaa tarvittaessa.

johtopäätös:

ArrayList välttää staattisen taulukon ongelman tavallisessa Java-järjestelmässä, ts. Taulukon koko ei voi kasvaa luomisen jälkeen. Kun taulukko luodaan ArrayList-ohjelmalla, luodaan dynaaminen taulukko, joka voi kasvaa ja kutistua kooltaan tarvittaessa. Tavallinen kokoelmaluokka ArrayList laajentaa luettelorajapintaa.