LinkedList vs ArrayList Java: Pārziniet galvenās atšķirības



Šis LinkedList vs ArrayList raksts ļaus jums pareizi salīdzināt sarakstus, kas ievieš saraksta saskarni

Saraksts Java ir sub-interfeiss kas sniedz optimālus risinājumus ar tādiem jēdzieniem kā atrašanās vietas piekļuve, atkārtojums un tā tālāk. Šajā rakstā es apspriedīšu galvenās atšķirības starp Java saskarnes LinkedList un ArrayList saskarni.

Tālāk ir norādītas šajā rakstā aplūkotās tēmas:





Sāksim!

Kas ir LinkedList?

Pēc masīvi , otra populārākā datu struktūra noteikti ir a . Saistītais saraksts ir lineāra datu struktūra, kuru veido amezglu ķēde, kurā katrs mezgls satur vērtību un arādītājsuz nākamo ķēdes mezglu.Arī tpēdējais saikne saistītajā sarakstā norāda uz nulli, norādot ķēdes beigas.Saistītā saraksta elementu sauc par a mezgls .Pirmo saraksta mezglu sauc par galva .Pēdējo mezglu sauc par asti .



šķirošanas masīvi c ++

Ļaujiet man jums pateikt vienkāršu piemēru: iedomājieties saspraudes ķēdi, kas ir savienotas kopā. Augšdaļā vai apakšā varat viegli pievienot vēl vienu saspraudes. Arī to ir viegli ievietot vidū. Viss, kas jums jādara, ir vienkārši pārtraukt ķēdi vidū, pievienot jaunu saspraudes un pēc tam atkal savienot otru pusi. Saistītais saraksts ir līdzīgs šim.

Piemērs:

pakete MyPackage import java.util.LinkedList importēt java.util.ListIterator publiskās klases saistīto sarakstu {public static void main (String args []) {/ * saistītā saraksta deklarācija * / LinkedListl_list = new LinkedList () / * add (virknes vienums) ir izmanto, lai * vienumus pievienotu saistītajam sarakstam * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Saistītā saraksta saturs:' + l_list) / * Pievienot vienumus norādītajā vietā * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Saturs pēc rediģēšanas: '+ l_list) / * Pievienot pirmo un pēdējo vienumu * / l_list.addFirst (' Pirmais kurss ') l_list.addLast (' Pēdējais kurss ') System.out.println (' l_list Saturs pēc pievienošanas: '+ l_list) / * Iegūt un iestatiet vienumus sarakstā * / Objekts firstvar = l_list.get (0) System.out.println ('Pirmais vienums:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content pēc pirmā vienuma atjaunināšanas: '+ l_list) / * Noņemt no pozīcijas * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList pēc vienuma dzēšanas 2. un 3. pozīcijā' + l_list) / * Noņemt pirmo un pēdējo vienumu * / l_list.removeFirst () l_list.removeLast () System.out.println ('Galīgais saturs pēc pirmā un pēdējā vienuma noņemšanas : '+ l_list) / * Saistītā saraksta atkārtošana * / ListIteratoritrator = l_list.listIterator () System.out.println (' Saraksts tiek parādīts, izmantojot iterator: '), savukārt (itrator.hasNext ()) {System.out.println (itrator .Nākamais()) } } }

Izeja:



Saistītā saraksta saturs = {Java, Python, Scala, Swift} Saturs pēc rediģēšanas = {Java, Python, JavaScript, Kotlin, Scala, Swift} Saturs pēc pievienošanas = {Pirmais kurss, Java, Python, JavaScript, Kotlin, Scala, Swift, Pēdējais kurss} Pirmais vienums = {Pirmais kurss} Saturs pēc pirmā vienuma atjaunināšanas = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Pēdējais kurss} Saturs pēc vienuma dzēšanas 2. un 3. pozīcijā = {Java9, Python, Kotlin, Scala, Swift, Last Course} Gala saturs pēc pirmā un pēdējā vienuma noņemšanas = {Python, Kotlin, Scala, Swift} Saraksts tiek parādīts, izmantojot iterator = Python Kotlin Scala Swift

Pārejam pie nākamās tēmas.

Kas ir ArrayList?

ir saraksta saskarnes ieviešana, kur elementus var dinamiski pievienot vai noņemt no atbilstošā saraksta. Šeit saraksta lielums tiek dinamiski palielināts, ja elementi tiek pievienoti vairāk nekā sākotnējais vai faktiskais lielums. Lai gan tas var būt lēnāks nekā standarta bloki, tas var būt noderīgs programmās, kurās masīvā ir jāveic daudz manipulāciju.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList tiek izmantots šiem mērķiem:

  • ArrayList Java ir pieradis veikalā dinamiska izmēra elementu kolekcija.
  • To inicializē pēc lieluma. Tomēr lielums var palielināties, ja kolekcija aug un samazinās, ja no .
  • Arī ArrayList ļauj nejauši piekļūt sarakstam.

Pārejam uz priekšu un norādīsim uz līdzību starp LinkedList un ArrayList Java.

Līdzības starp LinkedList un ArrayList

Šīs ir ievērojamās līdzības starp Java LinkedList un ArrayList.

  • ArrayList un LinkedList ir Saraksta saskarne .
  • Gan ArrayList, gan LinkedList uztur elementu ievietošanas secību. Tas nozīmē, ka, parādot saraksta elementus, rezultātu kopai būtu tāda pati secība, kādā elementi tika ievietoti sarakstā.
  • Šīs klases ArrayList un LinkedList nav sinhronizētas, un tās var skaidri sinhronizēt, izmantojot CollectionsSynchronizedList metodi.
  • Šo klašu atdotais iterators un ListIterator ir ātras kļūmes. Tas nozīmē, ka, ja saraksts ir strukturāli modificēts jebkurā brīdī pēc iteratora izveides, izņemotiteratora paša noņemt vai pievienot metodes, iterators iemet a ConcurrentModificationException .

Atšķirības starp LinkedList un ArrayList

Vispirms apskatīsim parametrus, lai salīdzinātu Java LinkedList un ArrayList.

Parametri, lai salīdzinātu Java LinkedList un ArrayList:

  • Darbība
  • Īstenošana
  • Process
  • Atmiņa
  1. Operācijas

Vienuma ievietošanas, pievienošanas un noņemšanas operācijas a LinkedList jo mums nav nepieciešams mainīt izmērus, kā mēs to darām ArrayList.

2. Īstenošana

ArrayList ir balstīts uz koncepcija par dinamiski maināmu masīvu, savukārt LinkedList ir balstīts uz divkārši saistītu sarakstu ieviešanu

3. Process

TO LinkedList klasi var izmantot kā sarakstu un rindu, jo tā īsteno List un Deque saskarnes, savukārt ArrayList var ieviest tikai sarakstus.

Četri. Atmiņa

TO LinkedList patērē vairāk atmiņas nekā ArrayList jo katrs mezgls a LinkedList glabā divas atsauces, turpretī ArrayList tur tikai datus un to indeksu

LinkedList vs ArrayList Java

ParametriLinkedListArrayList
Operācijas

Ievietošanas, pievienošanas un noņemšanas darbības notiek diezgan ātri

Salīdzinoši operācijasšeit ir lēni

Īstenošana

Seko divkārši saistītā saraksta ieviešanai

Ievēro dinamiski maināma masīva jēdzienu

Process

LinkedList klase var būt saraksts un rinda, jo tā ievieš saskarnes List un Deque

ArrayList klase var būt saraksts, jo tas ievieš tikai sarakstus

Atmiņa

LinkedList atmiņas patēriņš ir liels

Mazāk, salīdzinot ar LinkedList

Tas ir viss ļaudis! Tas mūs noved pie šī raksta beigām par LinkedList vs ArrayList Java. Es ceru, ka jums, puiši, ir skaidrs, kas tiek mācīts šajā rakstā.

Ja atradāt šo rakstu sadaļā “LinkedList vs ArrayList Java”, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Mēs esam šeit, lai palīdzētu jums katrā solī jūsu ceļojumā, un mēs izstrādājam mācību programmu, kas paredzēta studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji.