Ero ArrayList ja LinkedList välillä Java

Kirjoittaja: Laura McKinney
Luomispäivä: 3 Huhtikuu 2021
Päivityspäivä: 13 Saattaa 2024
Anonim
Ero ArrayList ja LinkedList välillä Java - Tekniikka
Ero ArrayList ja LinkedList välillä Java - Tekniikka

Sisältö


ArrayList ja LinkedList ovat Kokoelma luokkaa, ja molemmat toteuttavat Lista käyttöliittymä. ArrayList-luokka luo luettelon, joka tallennetaan sisäisesti dynaaminen ryhmä joka kasvaa tai pienenee kooltaan, kun elementtejä lisätään tai poistetaan siitä. LinkedList luo myös luettelon, joka on tallennettu sisäisesti kaksin verroin liittyy Lista. Molempia luokkia käytetään elementtien tallentamiseen luetteloon, mutta suurin ero luokkien ArrayList ja LinkedList välillä on, että ArrayList sallii satunnaisen pääsyn luettelon elementteihin, koska se toimii indeksiperusteisiin tietorakenne. Toisaalta LinkedList ei salli satunnaista pääsyä, koska sillä ei ole indeksejä elementtien käyttämiseksi suoraan, sen on kuljettava luetteloa elementin hakemiseksi tai käyttämiseksi luettelosta.


Keskustelemme vielä muutamista eroista ArrayListin ja LinkedListin välillä alla olevan vertailukaavion avulla.

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

Vertailutaulukko

Vertailun perusteetArrayListLinkedList
perustiedot ArrayList sallii satunnaisen pääsyn luettelon elementteihin.LinkedList ei salli satunnaista pääsyä luettelon elementteihin.
TietorakenneElementtien tallentamiseen käytetty sisäinen rakenne on dynaaminen taulukko.Elementtien tallentamiseen käytetty sisäinen rakenne on kaksinkertaisesti linkkiluettelo.
ulottuuArrayList laajentaa AbstarctList-luokkaa.LinkedList laajentaa AbstractSequentialList.
ImplementsAbstractList toteuttaa luettelon käyttöliittymän.LinkedList toteuttaa List, Deque, Queue.
Pääsy ArrayList käyttää luettelon elementtejä nopeammin.LinkedList käyttää luettelon elementtejä hitaammin.
ManipulointiArrayListissä luettelon elementtien käsittely on hitaampaa.Manuaalinen luettelon elementtien käsittely on nopeampaa LinkedListissä.
käytösArraylList käyttäytyy luettelona, ​​kun se toteuttaa luettelon.LinkedList käyttäytyy sekä luettelona että jonona, kun se toteuttaa luettelon ja jonon molemmat.


Määritelmä ArrayList

AbstractList luokan määrittelee Keräyskehys. Se ulottuu AbstarctList ja työvälineet Lista käyttöliittymä. ArrayList käyttää dynaaminen taulukko ts. muuttuvan pituinen taulukko sisäisenä tietorakenteena elementtien tallentamiseksi luettelossa. ArrayListin tarve syntyy, koska Java-taulukko on kiinteä. Joten se ei voi kasvaa tai pienentyä kooltaan, kun elementit lisätään tai poistetaan taulukosta. Joten sinun on tiedettävä vaaditun ryhmän koko etukäteen. Mutta ArrayList-luokan avulla toteutettu taulukkoluettelo voi kasvaa ja pienentyä, kun elementit lisätään tai poistetaan taulukosta.

ArrayList-sovelluksella toteutettuun taulukkoluetteloon pääsee satunnaisesti koska ArrayList toimii indeksiperusteisesti. Joten tietämällä hakemiston, pääset suoraan luettelon elementteihin. ArrayListissä on kolme rakentajaa:

ArrayList () ArrayList (kokoelma <? Laajentaa E> c) ArrayList (int kapasiteetti)

ensimmäinen rakentaja toteuttaa tyhjän ryhmäluettelon. toinen rakentaja toteuttaa taulukkoluettelon, joka on alustettu käyttämällä Kokoelma c elementtejä. kolmas rakentaja toteuttaa ryhmäluettelon kapasiteetti esitetyssä väitteessä. Jos haluat työskennellä ArrayList-sovelluksen kanssa, sinun on joskus muutettava Collection ArrayList -ryhmä taulukkoksi. Se voidaan tehdä soittamalla toArray ().

Määritelmä LinkedList

Kuten ArrayList, LinkedList on myös Kokoelma luokan käyttö kaksinkertaisesti linkitetty luettelo sisäisenä tietorakenteena elementtien tallentamiseksi luetteloon. LinkedList-luokka jatkuu AbstractSequentialList ja toteuttaa Lista, Deque ja Jonottaa rajapintoja. LinkedList-sovelluksella toteutettua linkitettyä luetteloa ei voida käyttää satunnaisesti. Jos haluat hakea minkä tahansa elementin luettelosta, sinun on iteroitava luetteloa, jotta se voisi etsiä.

LinkedList-luokassa on kaksi rakentajaa.

LinkedList () LinkedList (Kokoelma <? Ulottuu E> c)

ensimmäinen rakentaja luo tyhjän linkitetyn luettelon. toinen rakentaja luo linkitetyn luettelon, joka alustetaan Kokoelma C.

LinkedListissä luettelon manipulointi on helppoa ja nopeaa. Tämä johtuu siitä, että jos lisäät tai poistat mitä tahansa elementtiä luettelossa, elementtejä ei tarvitse siirtää kuten ArrayListissä. Mutta pääsy on hitaampaa, koska sillä ei ole hakemistoa elementtien suoraan käyttämiseksi.

  1. ArrayList-luettelototeutusta voidaan käyttää satunnaisesti, koska ArrayList ottaa käyttöön taulukon hakemistopohjaisen tietorakenteen. Toisaalta LinkedListin toteuttamaan luetteloon ei pääse pääsyä satunnaisesti, koska luettelon tietyn elementin hakemiseen tai käyttämiseen sinun on siirrettävä luetteloa.
  2. Sisäinen tietorakenne, jota ArrayList käyttää luettelon elementtien tallentamiseen, on a dynaaminen taulukko jotka voivat kasvaa tai kutistua, kun elementit lisätään tai poistetaan luettelosta. Sisäinen tietorakenne, jota LinkedList käyttää elementtien tallentamiseen luetteloon, on kuitenkin kaksinkertaisesti linkitetty luettelo.
  3. ArrayList laajentaa AbstractList luokka, joka on myös Collection-luokka, kun taas LinkedList-luokka jatkuu AbstractSequentialList luokka, joka on jälleen kokoelmaluokka.
  4. ArrayList-luokan työkalut Lista käyttöliittymä, kun taas LinkedList-luokka toteuttaa Lista, Jonottaaja Deque rajapintoja.
  5. Elementeille pääsy ArrayList-sovelluksella toteutetusta luettelosta on nopeampi koska sillä on hakemistopohjainen tietorakenne. Toisaalta luettelototeuttaja byLinkledList ei sisällä hakemistopohjaista rakennetta. Siksi iteraattoria käytetään luettelon yli päästäkseen käytettävään elementtiin, joka saa aikaan pääsyn hitaammin LinkedListissä.
  6. Manipulaatio on manipulointi ArrayList-sovelluksella toteutetussa luettelossa, koska aina kun elementti lisätään tai poistetaan luettelosta, luettelon elementtejä siirretään muutoksen huomioon ottamiseksi. Toisaalta manipulointi on nopeampaa LinkedListin toteuttamassa luettelossa, koska se ei vaadi elementtien siirtämistä luettelossa lisättäessä tai poistamalla elementtejä luettelosta.
  7. ArrayList toimii kuten lista kun se toteuttaa Lista-käyttöliittymän, LinkedList toimii lista ja jonottaa kun se toteuttaa sekä luettelon että jonon.

johtopäätös:

Kun luettelon elementtejä lisätään tai poistetaan usein, LinkedList on käytettävä, koska se toimii paremmin manipuloinnin aikana. Jos luetteloon käytetään usein hakua, ArrayList on paras valinta, koska se toimii paremmin, kun se käyttää elementtejä luettelosta.