Razlika med ArrayList in LinkedList na Javi

Avtor: Laura McKinney
Datum Ustvarjanja: 3 April 2021
Datum Posodobitve: 13 Maj 2024
Anonim
Razlika med ArrayList in LinkedList na Javi - Tehnologija
Razlika med ArrayList in LinkedList na Javi - Tehnologija

Vsebina


ArrayList in LinkedList sta Zbirka razredov in oba izvajata Seznam vmesnik. Razred ArrayList ustvari seznam, ki je notranje shranjen v dinamičen matrika ki raste ali se skrči v velikosti, ko se elementi dodajo ali izbrišejo iz nje. LinkedList ustvari tudi seznam, ki je notranje shranjen v Dvojno Povezani Seznam. Oba razreda se uporabljata za shranjevanje elementov na seznamu, vendar je glavna razlika med razredoma ArrayList in LinkedList v tem, da ArrayList omogoča naključen dostop do elementov na seznamu, ko deluje na temelji na indeksu struktura podatkov. Po drugi strani pa LinkedList ne dovoli naključnega dostopa, saj nima indeksov za neposreden dostop do elementov, mora iti po seznamu, da pridobi ali dostopa do elementa s seznama.

Pogovorimo se o še nekaj razlikah med ArrayList in LinkedList s pomočjo spodnje primerjalne tabele.


  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela

Osnove za primerjavoArrayListLinkedList
Osnovni ArrayList omogoča naključen dostop do elementov na seznamu.LinkedList ne dovoljuje naključnega dostopa do elementov na seznamu.
Struktura podatkovNotranja struktura, ki se uporablja za shranjevanje elementov, je dinamični niz.Notranja struktura, ki se uporablja za shranjevanje elementov, je dvojno povezana.
PodaljšaArrayList podaljša razred AbstarctList.LinkedList podaljša AbstractSequentialList.
IzvajalciAbstractList izvaja vmesnik seznama.LinkedList izvaja seznam, deque, čakalno vrsto.
Dostop Dostop do elementov na seznamu je v ArrayListu hitrejši.Dostop do elementov na seznamu je v LinkedListu počasnejši.
ManipulacijaManipulacija z elementi na seznamu je v ArrayListu počasnejša.Manipulacija z elementi na seznamu je v LinkedListu hitrejša.
ObnašanjeArraylList se obnaša kot List, ko izvaja seznam.LinkedList se ponaša kot List dobro kot čakalna vrsta, saj izvaja List in čakalno vrsto.


Opredelitev ArrayList

The AbstractList razred je določen s Okvir zbiranja. Razširi se AbstarctList in pripomočke Seznam vmesnik. ArrayList uporablja dinamični niz tj. matrika spremenljive dolžine kot notranja podatkovna struktura za shranjevanje elementov na seznamu. Pojavi se potreba po ArrayList, saj je array v javi določene dolžine. Tako se ne more povečati ali skrčiti v velikosti, saj se elementi dodajajo ali izbrišejo iz matrike. Torej morate vnaprej vedeti velikost zahtevanega niza. Toda seznam matrikov, ki se izvajajo z razredom ArrayList, lahko raste in se zmanjšuje, ko se elementi dodajajo ali izbrišejo iz matrike.

Dostop do seznama matrikov, ki se izvaja s pomočjo ArrayList naključno kot deluje ArrayList na osnovi indeksa. Torej s poznavanjem indeksa lahko neposredno dostopate do elementa seznama. Obstajajo trije konstruktorji ArrayList:

ArrayList () ArrayList (Zbirka <? Razširja E> c) ArrayList (int kapaciteta)

The prvi konstruktor izvaja prazen seznam matrike. The drugič konstruktor izvaja seznam matrike, inicializiran s pomočjo Zbirka c elementi. The tretjič konstruktor izvaja seznam array s zmogljivost naveden v argumentu. Pri delu z ArrayListom boste včasih morali pretvoriti Zbirko ArrayList v matriko. To lahko storite s klicem toArray ().

Opredelitev LinkedList

Tako kot ArrayList, LinkedList je tudi a Zbirka razred uporablja dvojno povezan seznam kot notranja struktura podatkov za shranjevanje elementov na seznamu. Razširja se razred LinkedList AbstractSequstvenList in izvaja Seznam, Deque in Čakalna vrsta vmesniki. Do povezanega seznama, izvedenega s pomočjo LinkedList, ni mogoče dostopati naključno. Če želite pridobiti kateri koli element s seznama, ga morate iterati, da ga poiščete.

V razredu LinkedList sta dva konstruktorja.

LinkedList () LinkedList (Zbirka <? Razširja E> c)

The prvi konstruktor ustvari prazen povezan seznam. The drugič konstruktor ustvari povezan seznam, inicializiran z elementi Zbirka c.

V LinkedListu je manipulacija seznama enostavna in hitra. To je zato, ker če dodate ali izbrišete kateri koli element na seznamu, potem elementov ni treba premikati kot v ArrayListu. Toda dostop je počasnejši, saj nima indeksa za neposreden dostop do elementov.

  1. Do seznama, ki ga izvaja ArrayList, je mogoče dostopati naključno, ker ArrayList sprejme strukturo podatkov matrike, ki temelji na indeksu. Po drugi strani do seznama, ki ga izvaja LinkedList, ni mogoče dostopati naključno, ker morate za iskanje ali dostop do določenega elementa na seznamu.
  2. Notranja struktura podatkov, ki jo ArrayList uporablja za shranjevanje elementov seznama, je a dinamični niz ki lahko rastejo ali se krčijo, ko so elementi dodani ali izbrisani s seznama. Vendar je notranja struktura podatkov, ki jo LinkedList uporablja za shranjevanje elementov na seznamu dvojno povezan seznam.
  3. ArrayList podaljša AbstractList razred, ki je tudi zbirčni razred, medtem ko se razred LinkedList razširi AbstractSequstvenList razred, ki je spet zbirka razreda.
  4. Izvedbe razreda ArrayList Seznam vmesnik, medtem ko izvaja razred LinkedList Seznam, Čakalna vrsta, in Deque vmesniki.
  5. Dostop do elementov s seznama, ki se izvaja s pomočjo ArrayList, je hitreje saj ima strukturo podatkov na osnovi indeksa. Po drugi strani na seznamu, ki ga izvajaLinkledList, ni strukture, ki temelji na indeksu. Zato se nad seznamom uporabi iterator, da doseže element, do katerega dostopate, ki omogoča dostop počasnejši v LinkedListu.
  6. Manipulacija je manipulacija na seznamu, ki se izvaja s pomočjo ArrayList, ker kadar koli element dodate ali izbrišete s seznama, se elementi na seznamu premaknejo, da se prilagodijo spremembi. Po drugi strani je manipulacija na seznamu, ki ga izvaja LinkedList, hitrejša, saj za dodajanje ali brisanje elementov s seznama ni treba premikati elementov na seznamu.
  7. ArrayList deluje kot seznam kot izvaja vmesnik List, medtem ko LinkedList deluje kot seznam in čakalna vrsta saj izvaja List in čakalno vrsto.

Zaključek:

Kadar je na seznamu pogosto dodajanje ali brisanje elementov, je treba uporabiti LinkedList, saj med manipulacijo deluje bolje. Če na seznam uporabljate pogosto iskanje, je najboljša izbira ArrayList, saj deluje bolje med dostopom do elementov s seznama.