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:
- Kas ir LinkedList?
- Kas ir ArrayList?
- Līdzības starp LinkedList un ArrayList
- Atšķirības starp LinkedList un ArrayList
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
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.
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
- 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
Parametri | LinkedList | ArrayList |
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.