LinkedList vs ArrayList u Javi: znajte glavne razlike



Ovaj članak LinkedList vs ArrayList pružit će vam odgovarajuću usporedbu između popisa koji implementiraju sučelje popisa

Popis u Javi je podsučelje koji daje optimalna rješenja s konceptima kao što su položajni pristup, iteracija i tako dalje. U ovom ću članku razgovarati o glavnim razlikama između popisa sučelja LinkedList i ArrayList u Javi.

Ispod su teme obrađene u ovom članku:





Započnimo!

php pretvori niz u niz

Što je LinkedList?

Nakon nizovi , druga najpopularnija struktura podataka definitivno je . Povezani popis linearna je struktura podataka koju čini alanac čvorova u kojem svaki čvor sadrži vrijednost i apokazivačdo sljedećeg čvora u lancu.Također, tzadnja karika na povezanom popisu pokazuje na nulu, što znači kraj lanca.Element na povezanom popisu naziva se a čvor .Prvi čvor na popisu naziva se glava .Posljednji čvor naziva se rep .



Dopustite mi da vam dam jednostavan primjer ovoga: Zamislite lanac spajalica koji su međusobno povezani. Možete jednostavno dodati još jednu spajalicu na vrh ili na dno. Također je lako umetnuti jedan u sredinu. Sve što morate učiniti je samo prekinuti lanac u sredini, dodati novu spajalicu, a zatim ponovno spojiti drugu polovicu. Povezani popis sličan je ovome.

Primjer:

paket MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Izjava o povezanom popisu * / LinkedListl_list = new LinkedList () / * add (String Item) is koristi se za dodavanje * Stavaka na povezani popis * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Sadržaj povezanog popisa:' + l_list) / * Dodaj stavke na navedenom položaju * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Sadržaj nakon uređivanja: '+ l_list) / * Dodaj prvu i zadnju stavku * / l_list.addFirst (' Prvi tečaj ') l_list.addLast (' Zadnji tečaj ') System.out.println (' l_list Sadržaj nakon dodavanja: '+ l_list) / * Dohvati i postavite stavke na popisu * / objekt firstvar = l_list.get (0) System.out.println ('Prva stavka:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Sadržaj nakon ažuriranja prve stavke: '+ l_list) / * Ukloni s položaja * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList nakon brisanja stavke na 2. i 3. poziciji' + l_list) / * Ukloni prvu i zadnju stavku * / l_list.removeFirst () l_list.removeLast () System.out.println ('Konačni sadržaj nakon uklanjanja prve i zadnje stavke : '+ l_list) / * Iteriranje povezanog popisa * / ListIteratoritrator = l_list.listIterator () System.out.println (' Popis prikazan pomoću iteratora: ') while (itrator.hasNext ()) {System.out.println (itrator .Sljedeći()) } } }

Izlaz:



Sadržaj povezanog popisa = {Java, Python, Scala, Swift} Sadržaj nakon uređivanja = {Java, Python, JavaScript, Kotlin, Scala, Swift} Sadržaj nakon dodavanja = {Prvi tečaj, Java, Python, JavaScript, Kotlin, Scala, Swift, Zadnji tečaj} Prva stavka = {Prvi tečaj} Sadržaj nakon ažuriranja prve stavke = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Zadnji tečaj} Sadržaj nakon brisanja predmeta na 2. i 3. poziciji = {Java9, Python, Kotlin, Scala, Swift, Zadnji tečaj} Konačni sadržaj nakon uklanjanja prve i posljednje stavke = {Python, Kotlin, Scala, Swift} Popis prikazan pomoću iteratora = Python Kotlin Scala Swift

Krenimo sada na sljedeću temu.

Što je ArrayList?

je implementacija sučelja popisa gdje se elementi mogu dinamički dodavati ili uklanjati s odgovarajućeg popisa. Ovdje se veličina popisa dinamički povećava ako se elementi dodaju više od početne ili stvarne veličine. Iako je možda sporiji od standardnih nizova, može biti od pomoći u programima u kojima je potrebno puno manipulacija nizom.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList koristi se u ove svrhe:

  • ArrayList u Javi je navikao na pohraniti zbirka elemenata dinamičke veličine.
  • Inicijalizira se veličinom. Međutim, veličina se može povećati ako zbirka raste i smanjuje se ako se predmeti uklone iz .
  • Također, ArrayList omogućuje vam nasumični pristup popisu.

Krenimo dalje i ukažemo na sličnosti između LinkedList i ArrayList u Javi.

Sličnosti između LinkedList i ArrayList

To su značajne sličnosti između LinkedList i ArrayList u Javi.

  • ArrayList i LinkedList su implementacije Sučelje popisa .
  • I ArrayList i LinkedList održavaju redoslijed umetanja elemenata. To znači da bi, tijekom prikazivanja elemenata Popisa, skup rezultata imao isti redoslijed kojim su elementi umetnuti u Popis.
  • Klase TheseArrayList i LinkedList nisu sinkronizirane i mogu se izričito sinkronizirati pomoću CollectionsSynchronizedList metoda.
  • Iterator i ListIterator koje su vratile ove klase brzi su. To znači da, ako je popis strukturno izmijenjen u bilo kojem trenutku nakon stvaranja iteratora, osimvlastite metode uklanjanja ili dodavanja iteratora, iterator će baciti a ConcurrentModificationException .

Razlike između LinkedList i ArrayList

Prvo, pogledajmo parametre za usporedbu LinkedList i ArrayList u Javi.

Parametri za usporedbu LinkedList i ArrayList u Javi:

  • Operacija
  • Provedba
  • Postupak
  • Memorija
  1. Operacije

Operacije umetanja, dodavanja i uklanjanja predmeta brže su u a LinkedList jer ne trebamo mijenjati veličinu kao u ArrayList.

2. Provedba

stvoriti ec2 instancu iz snimke

ArrayList temelji se na koncept dinamički promjenjivog niza, dok LinkedList temelji se na dvostruko povezanoj provedbi popisa

3. Postupak

DO LinkedList klasa se može koristiti kao popis i red jer implementira sučelja List i Deque dok ArrayList može implementirati samo Liste.

Četiri. Memorija

DO LinkedList troši više memorije od ArrayList jer svaki čvor u a LinkedList pohranjuje dvije reference, dok ArrayList sadrži samo podatke i njihov indeks

LinkedList vs ArrayList u Javi

ParametriLinkedListArrayList
Operacije

Operacije umetanja, dodavanja i uklanjanja prilično su brže

Usporedno s operacijamasu ovdje spori

Provedba

Prati provedbu dvostruko povezanog popisa

Slijedi koncept dinamički promjenjivog niza

kako deklarirati varijablu instance u javi
Postupak

Klasa LinkedList može biti popis i red jer implementira sučelja List i Deque

Klasa ArrayList može biti popis jer provodi samo Popise

Memorija

Potrošnja memorije u LinkedListu je velika

Manje u usporedbi s LinkedListom

To je sve narode! Ovo nas dovodi do kraja ovog članka o LinkedList vs ArrayList u Javi. Nadam se da ste jasni s onim što se uči u ovom članku.

Ako ste pronašli ovaj članak o 'LinkedList vs ArrayList u Javi', pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Ovdje smo da vam pomognemo u svakom koraku na putovanju i osmislili smo nastavni plan i program koji je dizajniran za studente i profesionalce koji žele biti programer Java.