Razlika između ArrayLista i LinkedLista u Javi

Autor: Laura McKinney
Datum Stvaranja: 3 Travanj 2021
Datum Ažuriranja: 11 Svibanj 2024
Anonim
Pitanja na testiranju za JAVA programiranje praksu
Video: Pitanja na testiranju za JAVA programiranje praksu

Sadržaj


ArrayList i LinkedList su Kolekcija klase i oboje ih provodi Popis sučelje. ArrayList klasa stvara popis koji je interno pohranjen u dinamičan red koja raste ili se smanjuje kako se elementi dodaju ili brišu iz nje. LinkedList također stvara popis koji je interno pohranjen u Dvostruko povezan Popis, Obje klase koriste se za spremanje elemenata u popis, ali glavna razlika između klasa ArrayList i LinkedList je u tome ArrayList dopušta slučajni pristup elementima na popisu dok djeluje na Indeks se temelji na struktura podataka. S druge strane vezana lista ne dopušta slučajni pristup jer nema indekse za pristup elementima, on mora zaobilaziti popis radi dohvaćanja ili pristupa elementu s popisa.

Razgovarajmo o još nekoliko razlika između ArrayLista i LinkedLista uz pomoć usporednog grafikona prikazanog dolje.


  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Usporedni grafikon

Osnove za usporedbuArrayListvezana lista
Osnovni, temeljni ArrayList omogućuje slučajni pristup elementima na popisu.LinkedList ne dopušta slučajni pristup elementima na popisu.
Struktura podatakaUnutarnja struktura koja se koristi za pohranu elemenata je dinamički niz.Unutarnja struktura koja se koristi za pohranu elemenata je dvostruko povezana lista.
ProširujeArrayList proširuje klasu AbstarctList.LinkedList proširuje AbstractSequentialList.
provodiAbstractList provodi sučelje popisa.LinkedList implementira popis, red, red.
Pristup Pristup elementima na popisu je brži u ArrayListu.Pristup elementima na popisu je sporiji u LinkedListu.
ManipulacijaManipulacije elementima na popisu su sporije u ArrayListu.Manipulacija elementima s popisa brža je u LinkedListu.
PonašanjeArraylList se ponaša kao List dok provodi popis.LinkedList ponaša se kao List dobro i kao Red koji provodi List i Queue.


Definicija ArrayLista

AbstractList klasa je definirana Okvir zbirke, Proteže se AbstarctList i pomagala Popis sučelje. ArrayList koristi dinamički niz tj. niz promjenjive duljine kao unutarnja struktura podataka za pohranjivanje elemenata u popis. Potreba ArrayLista javlja se jer je niz u Javi fiksne duljine. Tako se ne može povećavati ili smanjivati ​​u veličini dok se elementi dodaju ili brišu iz niza. Stoga morate unaprijed znati veličinu potrebnog polja. Ali popis array implementiranih pomoću klase ArrayList može rasti i smanjivati ​​se u veličini kako se elementi dodaju ili brišu iz polja.

Popisu nizova implementiranih pomoću ArrayList može se pristupiti slučajno kako ArrayList djeluje na bazi indeksa. Dakle, znajući indeks možete izravno pristupiti elementu popisa. Postoje tri konstruktora ArrayLista:

ArrayList () ArrayList (Zbirka <? Proširuje E> c) ArrayList (int kapacitet)

prvi konstruktor provodi popis praznih nizova. drugi konstruktor provodi popis nizova inicijaliziranih pomoću Zbirka c elementi. treći konstruktor provodi popis polja sa kapacitet naveden u argumentu. Radeći s ArrayListom, ponekad ćete trebati pretvaranje zbirke ArrayList u niz. To se može učiniti pozivom toArray ().

Definicija LinkedLista

Kao ArrayList, vezana lista je i Kolekcija koristi klase dvostruko povezan popis kao unutarnju strukturu podataka za pohranjivanje elemenata u popis. Proteže se klasa LinkedList AbstractSequentialList i provodi Popis, Deque i Red sučelja. Povezanom popisu implementiranom pomoću LinkedLista ne može se pristupiti nasumično. Ako želite dohvatiti bilo koji element s popisa, morate ga ponoviti kako biste pretraživali taj element.

U klasi LinkedList postoje dva konstruktora.

LinkedList () LinkedList (Kolekcija <? Proširuje E> c)

prvi konstruktor stvara prazan povezan popis. drugi konstruktor stvara povezani popis, inicijaliziran elementima Kolekcija c.

U LinkedListu je manipulacija popisom jednostavna i brza. To je zato što ako dodate ili izbrišete bilo koji element na popisu, nema potrebe za pomicanjem elemenata kao u ArrayListu. Ali pristup je sporiji jer nema indeksa za izravan pristup elementima.

  1. Implementaciji popisa ArrayListu može se pristupiti nasumično jer ArrayList prihvaća strukturu podataka na bazi indeksa. S druge strane, popisu koji implementira LinkedList ne može se pristupiti nasumično, jer za dohvaćanje ili pristup određenom elementu na popisu morate preći popis.
  2. Interna struktura podataka koju ArrayList koristi za pohranu elemenata popisa je a dinamički niz koja se može povećati ili smanjiti s dodavanjem ili brisanjem elemenata s popisa. No interna struktura podataka koju LinkedList koristi za pohranu elemenata u popis jest dvostruko povezan popis.
  3. ArrayList proširuje AbstractList klase koja je ujedno i zbirka klase dok se klasa LinkedList proširuje AbstractSequentialList klase koja je opet zbirka klase.
  4. ArrayList klase Popis sučelje, dok je implementirana klasa LinkedList Popis, Red, i Deque sučelja.
  5. Pristup elementima s popisa implementiranim pomoću ArrayList je brže jer ima strukturu podataka zasnovanu na indeksu. S druge strane, na listi implementacije byLinkledList nema strukture temeljene na indeksu. Dakle, iterator se primjenjuje na popisu kako bi se postigao element kojem se pristupa i koji čini pristup sporije u LinkedListu.
  6. Manipulacija je manipulacija na popisu implementiranom pomoću ArrayList-a, jer kad god se neki element doda ili izbriše s popisa, elementi na popisu pomiču se kako bi se prilagodila promjena. S druge strane, manipulacija je brža na popisu koji implementira LinkedList jer ne zahtijeva pomicanje elemenata s popisa dodavanjem ili brisanjem elemenata s popisa.
  7. ArrayList djeluje poput a popis kao što provodi sučelje Lista dok, LinkedList djeluje kao popis i red kao što provodi List i Queue oba.

Zaključak:

Kada je često dodavanje ili brisanje elemenata na popisu, LinkedList mora biti korišten jer djeluje bolje tijekom manipulacije. Ako se na popis primjenjuje česta pretraga, ArrayList je najbolji izbor, jer ima bolji učinak dok pristupa elementima s popisa.