Suositeltava, 2024

Toimituksen Valinta

Listan ja ArrayListin välinen ero Java: ssa

List ja ArrayList ovat kokoelmakehyksen jäseniä. Lista on kokoelma elementtejä sekvenssissä, jossa kukin elementti on kohde ja elementit ovat siellä (indeksissä). ArrayList luo dynaamisen joukon objekteja, jotka suurentavat tai pienenevät tarvittaessa. Ensisijainen ero Listin ja ArrayListin välillä on, että Lista on rajapinta ja ArrayList on luokka. Tarkastellaan listan ja ArrayListin välistä eroa alla olevan vertailukaavion avulla.

Vertailukaavio

Vertailun perusteetListaArrayList
perustiedotLuettelo on liitäntäArrayList on vakio kokoelmaluokka.
Syntaksiliitäntäluetteloluokka ArrayList
Laajennetaan / ToteutaLuettelorajapinta laajentaa keräyskehystä.ArrayList laajentaa AbstractListia ja toteuttaa List Interface -ohjelmaa.
nimiavaruusSystem.Collections.Generic.System.Collections.
TyöSitä käytetään luomaan luettelo elementeistä (esineistä), jotka liittyvät niiden indeksinumeroihin.ArrayListiä käytetään luomaan dynaaminen taulukko, joka sisältää esineitä.

Luettelon määritelmä

Luettelo on rajapinta, joka laajentaa kokoelma- kehystä. Luettelorajapinta kuvaa peräkkäin järjestettyjen elementtien kokoelman. Luettelorajapinta toteutetaan seuraavilla tavallisilla keräilyluokilla, kuten ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Listan rajapinnassa on elementtejä, jotka liittyvät niiden indeksinumeroihin. Voit käyttää luettelon elementtiä luettelonsa sijainnin (indeksin) perusteella. Luettelorajapinnan avulla luotu lista alkaa nollaan perustuvalla indeksillä.

Kokoelmakehyksen perimien menetelmien lisäksi List-rajapinta määrittelee myös jonkin oman menetelmän. Listan käyttöliittymän lisäämät menetelmät ovat: (int, E) ja addAll (int, Collection) . Nämä menetelmät lisää luetteloon elementin niiden indeksin mukaan. Luettelossa olevat menetelmät voivat heittää poikkeuksen, kuten UnsupportedOperationException, jos menetelmä ei pysty muokkaamaan luetteloa. Kun yksi luettelossa oleva objekti ei ole yhteensopiva toisen luettelon objektin kanssa, ClassCastException heitetään.Nullelementit eivät ole sallittuja luettelossa, jos yrität lisätä nollaobjektin luetteloon, NullPointerException heitetään.

Voit saada elementin luettelosta käyttämällä get () -menetelmää. Voit asettaa luettelon elementin arvon käyttämällä asetettua () -menetelmää. Voit myös saada luettelon alaluettelosta käyttämällä menetelmäluetteloa () . Se on kätevää toimia alaluettelossa luettelon sijaan.

Määritelmä ArrayList

Yksi tavallisista Collection-luokista on ArrayList, joka laajentaa AbstractList- luokkaa ja toteuttaa myös List- liitännän. ArrayList-luokkaa käytetään luomaan dynaamiset ryhmät, jotka kasvavat ja kutistuvat aina kun niitä tarvitaan. ArrayList-luokan avulla luotu lista on vain objektien joukko. Java: ssa vakio-ryhmällä on kiinteä pituus, joten sinun on tiedettävä joukon koko etukäteen. Saattaa kuitenkin olla, että et ehkä tiedä, mitä matriisin pituus tarvitsee, ennen kuin se kestää. Näin ollen keräyskehys esitteli ArrayList-luokan, jotta tämä ongelma voitaisiin ratkaista.

ArrayListissä on rakentajia, jotka luovat ryhmän intial-kapasiteetillaan. Vaikka luokan ArrayList-objektin kapasiteetti kasvaa automaattisesti, kun elementit lisätään ryhmään, voit silti lisätä manuaalisesti ArrayList-objektin kapasiteettia menetelmällä, jolla varmistetaan kapasiteetti () . On parempi lisätä matriisin kapasiteettia aluksi sen sijaan, että muisti myöhemmin uudelleen. Koska uudelleenjakaminen on kalliimpaa kuin muistin jakaminen kerralla.

Listan ja ArrayListin väliset keskeiset erot

  1. Yksi tärkeimmistä eroista Listin ja ArrayListin välillä on se, että luettelo on rajapinta ja ArrayList on vakio Collection- luokka .
  2. Listan rajapinta laajentaa kokoelma- kehystä, kun taas ArrayList laajentaa AbstractList- luokan ja toteuttaa List- rajapinnat.
  3. List-rajapinnan nimiavaruus on System.Collection.Generic, kun taas ArrayListin nimiavaruus on System.Collection .
  4. Luettelorajapinta luo joukon elementtejä, jotka tallennetaan sarjaan ja jotka tunnistetaan tai niitä käytetään niiden indeksinumerolla. Toisaalta ArrayList luo joukon kohteita, joissa matriisi voi kasvaa dynaamisesti tarvittaessa.

johtopäätös:

ArrayList voittaa staattisen taulukon ongelman tavallisessa Java: ssa, eli matriisi ei voi kasvaa kokoa, kun se on luotu. Kun taulukko luodaan ArrayListin avulla, syntyy dynaaminen taulukko, joka voi kasvaa ja pienentää kokoa tarvittaessa. Normaali Collection-luokan ArrayList laajentaa List-liitäntää.

Top