„LinkedList“ ir „ArrayList“ sistemoje „Java“: žinokite pagrindinius skirtumus



Šis „LinkedList“ ir „ArrayList“ straipsnis padės tinkamai palyginti sąrašus, kuriuose įdiegta sąrašo sąsaja

Sąrašas Java yra sub-sąsaja kuris pateikia optimalius sprendimus su tokiomis sąvokomis kaip pozicinė prieiga, iteracija ir pan. Šiame straipsnyje aptarsiu pagrindinius „Java“ sąrašo sąsajos „LinkedList“ ir „ArrayList“ skirtumus.

Toliau pateikiamos šio straipsnio temos:



Pradėkime!

Kas yra „LinkedList“?

Po masyvai , antra pagal populiarumą duomenų struktūra neabejotinai yra a . Susietas sąrašas yra linijinė duomenų struktūra, kurią sudaro amazgų grandinė, kurioje kiekviename mazge yra reikšmė ir arodyklėį kitą grandinės mazgą.Be to, tpaskutinis susieto sąrašo saitas nurodo nulį, nurodydamas grandinės pabaigą.Susieto sąrašo elementas vadinamas a mazgas .Pirmasis sąrašo mazgas vadinamas galva .Paskutinis mazgas vadinamas uodega .



Pateiksiu paprastą to pavyzdį: įsivaizduokite sujungtų segtukų grandinę. Viršuje arba apačioje galite lengvai pridėti kitą sąvaržėlę. Taip pat lengva įterpti vieną viduryje. Viskas, ką jums reikia padaryti, tai tiesiog pertraukti grandinę viduryje, pridėti naują sąvaržėlę ir vėl sujungti kitą pusę. Susietas sąrašas yra panašus į šį.

Pavyzdys:

paketas „MyPackage“ importuokite java.util.LinkedList importuokite java.util.ListIterator viešosios klasės susietą sąrašą {public static void main (String args []) {/ * Susieto sąrašo deklaracija * / LinkedListl_list = new LinkedList () / * add (eilutės elementas) yra naudojamas pridėti elementus * prie susieto sąrašo * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Susieto sąrašo turinys:' + l_list) / * Pridėti elementus nurodytoje vietoje * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Turinys po redagavimo: '+ l_list) / * Pridėti pirmąjį ir paskutinį elementą * / l_list.addFirst (' First Course ') l_list.addLast (' Last Course ') System.out.println (' l_list Content after added: '+ l_list) / * Gauti ir nustatykite elementus sąraše * / Object firstvar = l_list.get (0) System.out.println ('Pirmas elementas:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Turinys atnaujinus pirmąjį elementą: '+ l_list) / * Pašalinti iš pozicijos * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList ištrynus prekę 2 ir 3 pozicijose' + l_list) / * Pašalinti pirmą ir paskutinį elementus * / l_list.removeFirst () l_list.removeLast () System.out.println ('Galutinis turinys pašalinus pirmą ir paskutinį elementą : '+ l_list) / * Susietojo sąrašo kartojimas * / ListIteratoritrator = l_list.listIterator () System.out.println (' Sąrašas rodomas naudojant iteratorių: ') .Kitas()) } } }

Išvestis:



Susieto sąrašo turinys = {Java, Python, Scala, Swift} Turinys po redagavimo = {Java, Python, JavaScript, Kotlin, Scala, Swift} Turinys po pridėjimo = {Pirmasis kursas, Java, Python, JavaScript, Kotlin, Scala, Swift, Paskutinis kursas} Pirmas elementas = {Pirmas kursas} Turinys atnaujinus pirmąjį elementą = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} Turinys ištrynus elementą 2 ir 3 pozicijose = {Java9, Python, „Kotlin“, „Scala“, „Swift“, „Paskutinis kursas“} galutinis turinys pašalinus pirmą ir paskutinį elementą = {Python, Kotlin, Scala, Swift} sąrašas rodomas naudojant iteratorių = Python Kotlin Scala Swift

Dabar pereikime prie kitos temos.

Kas yra „ArrayList“?

yra sąrašo sąsajos įgyvendinimas, kai elementus galima dinamiškai pridėti arba pašalinti iš atitinkamo sąrašo. Čia dinamiškai padidinamas sąrašo dydis, jei elementai pridedami daugiau nei pradinis arba faktinis dydis. Nors jis gali būti lėtesnis nei standartiniai masyvai, jis gali būti naudingas programose, kuriose reikia daug manipuliuoti masyvu.

LinkedList-vs-ArrayList-in-Java-Edureka

„ArrayList“ naudojamas šiems tikslams:

  • „ArrayList“ Java yra naudojamas parduotuvė dinamiško dydžio elementų kolekcija.
  • Tai inicijuojama pagal dydį. Tačiau dydis gali padidėti, jei kolekcija auga ir mažėja, jei objektai pašalinami iš .
  • Be to, „ArrayList“ leidžia atsitiktinai pasiekti sąrašą.

Pažvelkime į priekį ir atkreipkime dėmesį į „Java“ „LinkedList“ ir „ArrayList“ panašumus.

„LinkedList“ ir „ArrayList“ panašumai

Tai yra pastebimi „Java“ „LinkedList“ ir „ArrayList“ panašumai.

kaip nustatyti "classpath" Java sistemoje "Windows 10"
  • „ArrayList“ ir „LinkedList“ yra Sąrašo sąsaja .
  • Tiek „ArrayList“, tiek „LinkedList“ palaiko elementų įterpimo tvarką. Tai reiškia, kad, rodant sąrašo elementus, rezultatų rinkinyje būtų ta pati tvarka, kokia elementai buvo įtraukti į sąrašą.
  • Šios „ArrayList“ ir „LinkedList“ klasės nėra sinchronizuojamos ir jas galima aiškiai sinchronizuoti naudojant CollectionsSynchronizedList metodas.
  • Šių klasių grąžintas iteratorius ir „ListIterator“ yra greitas. Tai reiškia, kad jei sąrašas yra struktūriškai modifikuotas bet kuriuo metu po iteratoriaus sukūrimo, išskyrusiteratoriaus pašalinti ar pridėti metodus, iteratorius meta a „ConcurrentModificationException“ .

Skirtumai tarp „LinkedList“ ir „ArrayList“

Pirmiausia pažvelkime į parametrus, kad palygintume „Java“ „LinkedList“ ir „ArrayList“.

Parametrai, skirti palyginti „LinkedList“ ir „ArrayList“ sistemoje „Java“:

  • Operacija
  • Įgyvendinimas
  • Procesas
  • Atmintis
  1. Operacijos

Elemento įterpimo, pridėjimo ir pašalinimo operacijos yra spartesnės a „LinkedList“ nes nereikia keisti dydžio, kaip mes darome „ArrayList“.

2. Įgyvendinimas

„ArrayList“ yra pagrįstas dinamiškai keičiamo masyvo koncepcija, o „LinkedList“ yra pagrįstas dvigubai susieto sąrašo įgyvendinimu

3. Procesas

Į „LinkedList“ klasė gali būti naudojama kaip sąrašas ir eilė, nes ji įgyvendina sąsajas „List“ ir „Deque“, o „ArrayList“ - tik sąrašus.

Keturi. Atmintis

Į „LinkedList“ sunaudoja daugiau atminties nei „ArrayList“ nes kiekvienas mazgas a „LinkedList“ saugo dvi nuorodas, o „ArrayList“ turi tik duomenis ir jų indeksą

„LinkedList“ ir „ArrayList“ „Java“

Parametrai„LinkedList“„ArrayList“
Operacijos

Įdėjimo, pridėjimo ir pašalinimo operacijos yra gana spartesnės

Palyginti operacijosyra lėti čia

Įgyvendinimas

Stebimas Dvigubai susieto sąrašo įgyvendinimas

Laikomasi dinamiškai keičiamo masyvo koncepcijos

Procesas

„LinkedList“ klasė gali būti sąrašas ir eilė, nes ji įgyvendina „List“ ir „Deque“ sąsajas

rūšiuoti skaičius c ++

„ArrayList“ klasė gali būti sąrašas, nes jis įgyvendina tik sąrašus

Atmintis

„LinkedList“ yra daug atminties

Mažiau, palyginti su „LinkedList“

Viskas draugužiai! Tai leidžia mums baigti šį straipsnį „Java“ „LinkedList“ ir „ArrayList“. Tikiuosi, kad jums, vaikinai, aišku, ko mokoma šiame straipsnyje.

Jei radote šį straipsnį „LinkedList vs ArrayList in Java“, patikrinkite sukūrė „Edureka“ - patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą. Mes esame čia, kad padėtume jums kiekviename jūsų kelionės žingsnyje, ir mes parengėme mokymo programą, skirtą studentams ir specialistams, norintiems būti „Java“ kūrėjais.