LinkedList vs ArrayList Java-ban: Ismerje a főbb különbségeket



Ez a LinkedList vs ArrayList cikk megfelelő összehasonlítást nyújt a listák felületét megvalósító listák között

Lista a Java-ban a amely optimális megoldásokat ad olyan fogalmakkal, mint a helyhez való hozzáférés, az iteráció és így tovább. Ebben a cikkben a Java-ban a LinkedList és az ArrayList közötti interfész közötti főbb különbségeket tárgyalom.

Az alábbiakban bemutatjuk a cikkben tárgyalt témákat:





Kezdjük!

Mi a LinkedList?

Után tömbök , a második legnépszerűbb adatszerkezet mindenképpen a . A kapcsolt lista egy lineáris adatstruktúra, amelyet acsomópontok lánca, amelyben minden csomópont tartalmaz egy értéket és egymutatóa lánc következő csomópontjához.Továbbá, ta linkelt lista utolsó linkje nullára mutat, jelezve a lánc végét.A csatolt listák egyik elemét a-nak nevezzük csomópont .A lista első csomópontját hívjuk fej .Az utolsó csomópont neve farok .



Hadd mondjak erre egy egyszerű példát: Képzeljünk el egy összekapcsolt gemkapocsláncot. Könnyedén hozzáadhat egy újabb gemkapcsot a tetejére vagy az aljára. Könnyű beilleszteni egyet a közepébe is. Csak annyit kell tennie, hogy csak középen megszakítja a láncot, hozzáad egy új gemkapcsot, majd csatlakoztatja újra a másik felét. Ehhez hasonló egy linkelt lista.

Példa:

MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) használt az elemek * hozzáadásához a csatolt listához * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Összekapcsolt lista tartalma:' + l_list) / * Elemek hozzáadása a megadott helyre * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list tartalom szerkesztés után: '+ l_list) / * Első és utolsó elem hozzáadása * / l_list.addFirst (' Első tanfolyam ') l_list.addLast (' Utolsó tanfolyam ') System.out.println (' l_list Tartalom hozzáadás után: '+ l_list) / * Get és állítsa be a tételeket a listában * / Object firstvar = l_list.get (0) System.out.println ('Első elem:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content az első elem frissítése után: '+ l_list) / * Eltávolítás egy pozícióból * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList az elem törlése után a 2. és 3. pozícióban' + l_list) / * Első és utolsó elem eltávolítása * / l_list.removeFirst () l_list.removeLast () System.out.println ('Végső tartalom az első és az utolsó elem eltávolítása után : '+ l_list) / * A csatolt lista megismétlése * / ListIteratoritrator = l_list.listIterator () System.out.println (' Az iterátor használatával megjelenített lista: ') míg .következő()) } } }

Kimenet:



Összekapcsolt lista tartalma = {Java, Python, Scala, Swift} Tartalom szerkesztés után = {Java, Python, JavaScript, Kotlin, Scala, Swift} Tartalom hozzáadás után = {Első tanfolyam, Java, Python, JavaScript, Kotlin, Scala, Swift, Utolsó tanfolyam} Első elem = {Első tanfolyam} Tartalom az első elem frissítése után = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Utolsó tanfolyam} Tartalom az elem törlése után a 2. és 3. pozícióban = {Java9, Python, Kotlin, Scala, Swift, Utolsó tanfolyam} Végső tartalom az első és utolsó elem eltávolítása után = {Python, Kotlin, Scala, Swift} Az iterátor használatával megjelenített lista = Python Kotlin Scala Swift

Most térjünk előre a következő témára.

Mi az az ArrayList?

a List Interface megvalósítása, ahol az elemeket dinamikusan hozzá lehet adni vagy eltávolítani a megfelelő listáról. Itt a lista mérete dinamikusan növekszik, ha az elemeket a kezdeti vagy a tényleges méretnél többet adják hozzá. Bár lassabb lehet, mint a szokásos tömbök, hasznos lehet azokban a programokban, ahol sok manipulációra van szükség a tömbben.

LinkedList-vs-ArrayList-in-Java-Edureka

Az ArrayList ezeket a célokat használja:

mire használják a mongodb-t
  • A ArrayList Java-ban megszokta bolt dinamikus méretű elemgyűjtemény.
  • Mérettel inicializálja. A méret azonban nőhet, ha a gyűjtemény növekszik és zsugorodik, ha tárgyakat távolítanak el a .
  • Az ArrayList lehetővé teszi a lista véletlenszerű elérését is.

Menjünk előre, és mutassunk rá a LinkedList és az Java ArrayList közötti hasonlóságokra.

A LinkedList és az ArrayList hasonlóságai

Ezek a figyelemre méltó hasonlóságok a LinkedList és a Java ArrayList között.

  • Az ArrayList és a LinkedList a Lista felület .
  • Az ArrayList és a LinkedList is fenntartja az elemek beszúrási sorrendjét. Ez azt jelenti, hogy a Lista elemek megjelenítése közben az eredményhalmaz ugyanolyan sorrendű lenne, ahogyan az elemeket beillesztették a Listába.
  • Ezek az ArrayList és LinkedList osztályok nincsenek szinkronizálva, és szinkronizálhatók kifejezetten a CollectionsSynchronizedList módszer.
  • Az ezen osztályok által visszaadott iterátor és ListIterator hibamentes. Ez azt jelenti, hogy ha a lista az iterátor létrehozása után bármikor strukturálisan módosul, kivéve aaz iterátor saját eltávolítási vagy hozzáadási metódusai, az iterátor dob egy ConcurrentModificationException .

Különbségek a LinkedList és az ArrayList között

Először vessünk egy pillantást a paraméterekre a LinkedList és az ArrayList összehasonlításához a Java-ban.

Paraméterek a LinkedList és az ArrayList összehasonlításához Java-ban:

  • Művelet
  • Végrehajtás
  • Folyamat
  • memória
  1. Tevékenységek

Egy elem beillesztési, hozzáadási és eltávolítási műveletei gyorsabbak a LinkedList mert nem kell átméreteznünk, ahogyan azt csináljuk Tömb lista.

2. Végrehajtás

Tömb lista alapján dinamikusan átméretezhető tömb fogalma, míg LinkedList kétszeresen összekapcsolt lista megvalósításán alapul

3. Folyamat

NAK NEK LinkedList osztály használható listaként és várólistaként, mert megvalósítja a List és a Deque interfészeket, míg az ArrayList csak a Listákat valósíthatja meg.

Négy. memória

NAK NEK LinkedList több memóriát fogyaszt, mint egy Tömb lista mert minden csomópont a LinkedList két referenciát tárol, míg Tömb lista csak az adatokat és azok indexét tárolja

LinkedList vs ArrayList Java-ban

ParaméterekLinkedListTömb lista
Tevékenységek

A beillesztési, összeadási és eltávolítási műveletek meglehetősen gyorsabbak

Összehasonlítva a műveleteketitt lassúak

Végrehajtás

A duplán összekapcsolt lista megvalósítását követi

A dinamikusan átméretezhető tömb fogalmát követi

Folyamat

A LinkedList osztály lehet lista és várólista, mert megvalósítja a List és a Deque interfészeket

hogyan kell most használni a szolgáltatást

Az ArrayList osztály lehet lista, mert csak a Listákat valósítja meg

memória

A LinkedList memóriafogyasztása magas

Kevesebb a LinkedListhez képest

Ez van, srácok! Ezzel eljutottunk a Java LinkedList vs ArrayList cikkének végéhez. Remélem, önök tisztában vannak azzal, amit ebben a cikkben tanítanak.

Ha megtalálta ezt a cikket a „LinkedList vs ArrayList in Java” témában, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Azért vagyunk itt, hogy segítséget nyújtsunk utazásának minden lépésében, és egy olyan tananyagot állítunk össze, amelyet azoknak a hallgatóknak és szakembereknek tervezünk, akik Java fejlesztők szeretnének lenni.