Lista Java on alikäyttöliittymä joka tarjoaa optimaalisia ratkaisuja käsitteillä, kuten sijaintipääsy, iterointi ja niin edelleen. Tässä artikkelissa keskustelen suurimmista eroista Java-käyttöliittymän LinkedList ja ArrayList välillä.
Tässä ovat tämän artikkelin aiheet:
- Mikä on LinkedList?
- Mikä on ArrayList?
- LinkedListin ja ArrayListin yhtäläisyydet
- LinkedList ja ArrayList erot
ero html: n ja xml: n välillä
Mikä on LinkedList?
Jälkeen taulukot , toiseksi suosituin tietorakenne on ehdottomasti a . Linkitetty luettelo on lineaarinen tietorakenne, jonka muodostavat asolmujen ketju, jossa kukin solmu sisältää arvon ja aosoitinketjun seuraavaan solmuun.Myös tlinkitetyn luettelon viimeinen linkki osoittaa nollaan, mikä osoittaa ketjun lopun.Linkitetyn luettelon elementtiä kutsutaan a solmu .Luettelon ensimmäistä solmua kutsutaan pää .Viimeistä solmua kutsutaan häntä .
Annan sinulle yksinkertaisen esimerkin tästä: Kuvittele ketjun paperiliittimiä, jotka on liitetty toisiinsa. Voit helposti lisätä toisen paperiliittimen ylä- tai alaosaan. Yksi on myös helppo asettaa keskelle. Sinun tarvitsee vain rikkoa ketju keskellä, lisätä uusi paperiliitin ja liittää toinen puolikas takaisin. Linkitetty luettelo on samanlainen kuin tämä.
Esimerkki:
paketti MyPackage import java.util.LinkedList import java.util.ListIterator public class linkslist {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) on käytetään * kohteiden lisäämiseen linkitettyyn luetteloon * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Linkitetyn luettelon sisältö:' + l_list) / * Lisää kohteita määritettyyn kohtaan * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Sisältö muokkauksen jälkeen: '+ l_list) / * Lisää ensimmäinen ja viimeinen kohde * / l_list.addFirst (' Ensimmäinen kurssi ') l_list.addLast (' Viimeinen kurssi ') System.out.println (' l_list Sisältö lisäyksen jälkeen: '+ l_list) / * Hae ja aseta luettelossa olevat kohteet * / Object firstvar = l_list.get (0) System.out.println ('Ensimmäinen kohde:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Sisältö ensimmäisen kohteen päivittämisen jälkeen: '+ l_list) / * Poista sijainnista * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList, kun kohde on poistettu 2. ja 3. sijasta' + l_list) / * Poista ensimmäinen ja viimeinen kohde * / l_list.removeFirst () l_list.removeLast () System.out.println ('Lopullinen sisältö ensimmäisen ja viimeisen kohteen poistamisen jälkeen : '+ l_list) / * Linkitetyn luettelon toistaminen * / ListIteratoritrator = l_list.listIterator () System.out.println (' Luettelo näytetään iteraattorin avulla: ') taas (itrator.hasNext ()) {System.out.println (itrator .Seuraava()) } } }
Tuotos:
Linkitetyn luettelon sisältö = {Java, Python, Scala, Swift} Sisältö muokkauksen jälkeen = {Java, Python, JavaScript, Kotlin, Scala, Swift} Sisältö lisäyksen jälkeen = {Ensimmäinen kurssi, Java, Python, JavaScript, Kotlin, Scala, Swift, Viimeinen kurssi} Ensimmäinen kohde = {Ensimmäinen kurssi} Sisältö ensimmäisen kohteen päivityksen jälkeen = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Viimeinen kurssi} Sisältö kohteen poistamisen jälkeen 2. ja 3. sijasta = {Java9, Python, Kotlin, Scala, Swift, Viimeinen kurssi} Lopullinen sisältö ensimmäisen ja viimeisen kohteen poistamisen jälkeen = {Python, Kotlin, Scala, Swift} Luettelo näytetään iteraattorilla = Python Kotlin Scala Swift
Siirrytään nyt seuraavaan aiheeseen.
Mikä on ArrayList?
on List Interface -toteutus, jossa elementit voidaan lisätä tai poistaa dynaamisesti vastaavasta luettelosta. Tässä luettelon kokoa lisätään dynaamisesti, jos elementtejä lisätään enemmän kuin alkuperäinen tai todellinen koko. Vaikka se voi olla hitaampi kuin tavalliset taulukot, se voi olla hyödyllinen ohjelmissa, joissa matriisissa vaaditaan paljon manipulointia.
ArrayList käytetään näihin tarkoituksiin:
- ArrayList Java on tottunut kaupassa dynaamisen kokoinen kokoelma elementtejä.
- Se alustetaan koon mukaan. Koko voi kuitenkin kasvaa, jos kokoelma kasvaa ja kutistuu, jos esineitä poistetaan .
- Myös ArrayList antaa sinun käyttää satunnaisesti luetteloa.
Siirrytään eteenpäin ja osoitetaan LinkedListin ja ArrayListin väliset yhtäläisyydet Javassa.
LinkedListin ja ArrayListin yhtäläisyydet
Nämä ovat huomattavia yhtäläisyyksiä LinkedListin ja ArrayListin välillä Javassa.
- ArrayList ja LinkedList ovat Luettelon käyttöliittymä .
- Sekä ArrayList että LinkedList ylläpitävät elementtien lisäysjärjestystä. Tämä tarkoittaa, että vaikka luetteloelementtejä näytetään, tulosjoukon järjestys olisi sama kuin missä elementit lisättiin luetteloon.
- Nämä luokitukset ArrayList ja LinkedList eivät ole synkronoituja, ja ne voidaan synkronoida nimenomaisesti käyttämällä CollectionsSynchronizedList menetelmä.
- Näiden luokkien palauttamat iteraattori ja ListIterator ovat epäonnistuneita. Tämä tarkoittaa, että jos luetteloa muokataan rakenteellisesti milloin tahansa iteraattorin luomisen jälkeen, paitsiiteraattorin omat poisto- tai lisäysmenetelmät, iteraattori heittää a ConcurrentModificationException .
LinkedList ja ArrayList erot
Tarkastellaan ensin parametreja, joilla vertaillaan LinkedListiä ja ArrayListiä Java-sovelluksessa.
Parametrit LinkedListin ja ArrayListin vertaamiseksi Java:
- Operaatio
- Toteutus
- Prosessi
- Muisti
- Toiminnot
Kohteen lisääminen, lisääminen ja poistaminen on nopeampaa kohdassa a LinkedList koska meidän ei tarvitse muuttaa kokoa samalla tavalla ArrayList.
2. Toteutus
ArrayList perustuu käsite dynaamisesti muutettavissa olevasta taulukosta, kun taas LinkedList perustuu kaksinkertaisesti linkitettyjen luetteloiden toteuttamiseen
3. Prosessi
TO LinkedList luokkaa voidaan käyttää luettelona ja jonona, koska se toteuttaa List- ja Deque-rajapinnat, kun taas ArrayList voi toteuttaa vain luetteloita.
Neljä. Muisti
TO LinkedList kuluttaa enemmän muistia kuin ArrayList koska jokainen solmu a LinkedList tallentaa kaksi viitteitä, kun taas ArrayList omistaa vain tiedot ja sen indeksin
LinkedList vs ArrayList Java-sovelluksessa
Parametrit | LinkedList | ArrayList |
Toiminnot | Asennus-, lisäys- ja poistotoimet ovat melko nopeita | Vertailun vuoksi toiminnotovat hitaita täällä |
Toteutus | Seuraa kahdesti linkitetyn luettelon toteutusta | Seuraa dynaamisesti muutettavan taulukon käsitettä |
Prosessi | LinkedList-luokka voi olla luettelo ja jono, koska se toteuttaa List- ja Deque-rajapinnat luo ec2-ilmentymä tilannekuvasta | ArrayList-luokka voi olla luettelo, koska se toteuttaa vain luetteloita |
Muisti | LinkedList-muistin kulutus on suuri | Vähemmän verrattuna LinkedListiin |
Siinä kaikki ihmiset! Tämä vie meidät tämän artikkelin loppuun LinkedList vs ArrayList Java-ohjelmassa. Toivon, että olette selvillä siitä, mitä tässä artikkelissa opetetaan.
Jos löysit tämän artikkelin aiheesta 'LinkedList vs ArrayList in Java', tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Autamme sinua matkasi jokaisessa vaiheessa ja keksimme opetussuunnitelman, joka on tarkoitettu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä.