logo

LinkedList Java

Saistītais saraksts ir daļa no Kolekcijas ietvars atrodas java.util pakotnē. Šī klase ir divkārši saistītu sarakstu datu struktūras īstenošana.

Galvenā atšķirība starp parastu saistīto sarakstu un dubultsaites sarakstu ir tāda, ka divkārši saistītais saraksts satur papildu rādītāju, ko parasti sauc par iepriekšējo rādītāju, kopā ar nākamo rādītāju un datiem, kas atrodas atsevišķi saistītajā sarakstā.

Konstruktori LinkedList:

Lai izveidotu LinkedList, mums ir jāizveido LinkedList klases objekts. LinkedList klase sastāv no dažādiem konstruktoriem, kas ļauj izveidot sarakstu. Šajā klasē ir pieejami šādi konstruktori:



1. LinkedList(): Šis konstruktors tiek izmantots, lai izveidotu tukšu saistīto sarakstu. Ja vēlamies izveidot tukšu LinkedList ar nosaukumu ll, tad to var izveidot kā:

LinkedList ll = jauns LinkedList();

2. Saistītais saraksts (C kolekcija): Šis konstruktors tiek izmantots, lai izveidotu sakārtotu sarakstu, kas satur visus norādītās kolekcijas elementus, ko atgriež kolekcijas iterators. Ja mēs vēlamies izveidot LinkedList ar nosaukumu ll, tad to var izveidot kā:

LinkedList ll = jauns LinkedList(C);

Java LinkedList metodes:

Metode Apraksts
pievienot (indekss, E elements) Šī metode Ievieto norādīto elementu norādītajā vietā šajā sarakstā.
pievienot (un un) Šī metode Pievieno norādīto elementu šī saraksta beigās.
pievienot visu(int indekss, kolekcija c) Šī metode šajā sarakstā ievieto visus norādītās kolekcijas elementus, sākot no norādītās pozīcijas.
pievienot visu (c kolekcija) Šī metode pievieno visus norādītās kolekcijas elementus šī saraksta beigām tādā secībā, kādā tos atgriež norādītās kolekcijas iterators.
addFirst(E e) Šī metode Ievieto norādīto elementu šī saraksta sākumā.
pievienot pēdējo(E e) Šī metode Pievieno norādīto elementu šī saraksta beigās.
skaidrs () Šī metode noņem visus elementus no šī saraksta.
klons () Šī metode atgriež seklu šī LinkedList kopiju.
satur (Objekts o) Šī metode atgriež patieso vērtību, ja šajā sarakstā ir norādīts elements.
descendingIterator() Šī metode atgriež iteratoru virs elementiem šajā deque apgrieztā secībā.
elements() Šī metode izgūst, bet nenoņem šī saraksta galveni (pirmo elementu).
iegūt (indekss) Šī metode atgriež elementu norādītajā pozīcijā šajā sarakstā.
getFirst() Šī metode atgriež pirmo elementu šajā sarakstā.
getLast() Šī metode atgriež pēdējo elementu šajā sarakstā.
indexOf(Object o) Šī metode atgriež šajā sarakstā norādītā elementa pirmās parādības indeksu vai -1, ja šajā sarakstā elements nav ietverts.
LastIndexOf(Object o) Šī metode atgriež šajā sarakstā norādītā elementa pēdējā gadījuma indeksu vai -1, ja šajā sarakstā elements nav ietverts.
listIterator(int index) Šī metode atgriež šī saraksta elementu saraksta iteratoru (pareizā secībā), sākot no norādītās pozīcijas sarakstā.
piedāvājums (E e) Šī metode Pievieno norādīto elementu kā šī saraksta galu (pēdējo elementu).
piedāvājums pirmais (E un) Šī metode Ievieto norādīto elementu šī saraksta sākumā.
piedāvājumsPēdējais(E e) Šī metode Ievieto norādīto elementu šī saraksta beigās.
palūrēt () Šī metode izgūst, bet nenoņem šī saraksta galveni (pirmo elementu).
peekFirst() Šī metode izgūst, bet nenoņem šī saraksta pirmo elementu vai atgriež nulli, ja šis saraksts ir tukšs.
peekLast() Šī metode izgūst, bet nenoņem šī saraksta pēdējo elementu vai atgriež nulli, ja šis saraksts ir tukšs.
aptauja () Šī metode izgūst un noņem šī saraksta galvu (pirmo elementu).
aptaujaFirst() Šī metode izgūst un noņem pirmo šī saraksta elementu vai atgriež nulli, ja šis saraksts ir tukšs.
aptauja Pēdējā() Šī metode izgūst un noņem pēdējo šī saraksta elementu vai atgriež nulli, ja šis saraksts ir tukšs.
pop () Šī metode uznirst elementu no steka, ko attēlo šis saraksts.
push (E un) Šī metode nospiež elementu šajā sarakstā attēlotajā kaudzē.
noņemt () Šī metode izgūst un noņem šī saraksta galvu (pirmo elementu).
noņemt(int indekss) Šī metode noņem elementu norādītajā vietā šajā sarakstā.
noņemt (Objekts o) Šī metode no šī saraksta noņem norādītā elementa pirmo reizi, ja tāds ir.
noņemtFirst() Šī metode noņem un atgriež pirmo elementu no šī saraksta.
noņemtFirstCurrence (Object o) Šī metode noņem pirmo norādītā elementa gadījumu šajā sarakstā (šķērsojot sarakstu no galvas līdz astei).
noņemtLast() Šī metode noņem un atgriež pēdējo elementu no šī saraksta.
noņemtPēdējo notikumu (Objekts o) Šī metode noņem norādītā elementa pēdējo gadījumu šajā sarakstā (pārejot sarakstu no galvas līdz astei).
kopa (indekss, E elements) Šī metode aizvieto elementu norādītajā vietā šajā sarakstā ar norādīto elementu.
Izmērs() Šī metode atgriež elementu skaitu šajā sarakstā.
sadalītājs () Izmantojot šo metodi, šī saraksta elementiem tiek izveidots novēloti saistošs un ātrs sadalītājs.
toArray() Šī metode atgriež masīvu, kurā ir visi šī saraksta elementi pareizā secībā (no pirmā līdz pēdējam elementam).
toMasīvs(T[] a) Šī metode atgriež masīvu, kurā ir visi šī saraksta elementi pareizā secībā (no pirmā līdz pēdējam elementam); atgrieztā masīva izpildlaika veids ir norādītā masīva izpildlaika veids.
toString() Šī metode atgriež virkni, kas satur visus šī saraksta elementus pareizā secībā (no pirmā līdz pēdējam elementam), katrs elements ir atdalīts ar komatiem, un virkne ir ievietota kvadrātiekavās.

Zemāk ir aprakstīta iepriekš minēto darbību īstenošana:

Java




// Java Program to Demonstrate> // Implementation of LinkedList> // class> > // Importing required classes> import> java.util.*;> > // Main class> public> class> GFG {> > >// Driver code> >public> static> void> main(String args[])> >{> >// Creating object of the> >// class linked list> >LinkedList ll =>new> LinkedList();> > >// Adding elements to the linked list> >ll.add(>'A'>);> >ll.add(>'B'>);> >ll.addLast(>'C'>);> >ll.addFirst(>'D'>);> >ll.add(>2>,>'E'>);> > >System.out.println(ll);> > >ll.remove(>'B'>);> >ll.remove(>3>);> >ll.removeFirst();> >ll.removeLast();> > >System.out.println(ll);> >}> }>

>

>

Izvade

[D, A, E, B, C] [A]>

List-ArrayList-in-Java-Depth-Study

Iepriekš redzamajā ilustrācijā AbstractList , CopyOnWriteArrayList un AbstractSequentialList ir klases, kas ievieš saraksta saskarni. Katrā no minētajām klasēm tiek realizēta atsevišķa funkcionalitāte. Viņi ir:

    AbstractList: šī klase tiek izmantota, lai ieviestu nemodificējamu sarakstu, kuram ir jāpaplašina tikai šī AbstractList klase un jāievieš tikai metodes get() un size(). CopyOnWriteArrayList: šī klase ievieš saraksta saskarni. Tā ir uzlabota ArrayList versija, kurā visas modifikācijas (pievienot, iestatīt, noņemt utt.) tiek ieviestas, izveidojot jaunu saraksta kopiju.

Dažādu darbību veikšana LinkedList:

  • Elementu pievienošana
  • Elementu atjaunināšana
  • Elementu noņemšana
  • Elementu atkārtošana
  • To Array();
  • Izmērs();
  • noņemt First();
  • noņemt pēdējo ();

1. darbība: Elementu pievienošana

Lai pievienotu elementu ArrayList, mēs varam izmantot metodi add() . Šī metode ir pārslogota, lai veiktu vairākas darbības, pamatojoties uz dažādiem parametriem. Viņi ir:

    add(Object): šo metodi izmanto, lai pievienotu elementu LinkedList beigās. add(int index, Object): šo metodi izmanto, lai pievienotu elementu noteiktam indeksam LinkedList.

Zemāk ir aprakstīta iepriekš minētās darbības īstenošana:

Java




// Java program to add elements> // to a LinkedList> > import> java.util.*;> > public> class> GFG {> > >public> static> void> main(String args[])> >{> >LinkedList ll =>new> LinkedList();> > >ll.add(>'Geeks'>);> >ll.add(>'Geeks'>);> >ll.add(>1>,>'For'>);> > >System.out.println(ll);> >}> }>

>

>

Izvade

[Geeks, For, Geeks]>

2. darbība: Elementu maiņa

Pēc elementu pievienošanas, ja vēlamies elementu mainīt, to var izdarīt, izmantojot set() metodi . Tā kā LinkedList ir indeksēts, uz elementu, kuru vēlamies mainīt, atsaucas ar elementa indeksu. Tāpēc šī metode izmanto indeksu un atjaunināto elementu, kas jāievieto šajā indeksā.

Zemāk ir aprakstīta iepriekš minētās darbības īstenošana:

Java




// Java program to change elements> // in a LinkedList> > import> java.util.*;> > public> class> GFG {> > >public> static> void> main(String args[])> >{> >LinkedList ll =>new> LinkedList();> > >ll.add(>'Geeks'>);> >ll.add(>'Geeks'>);> >ll.add(>1>,>'Geeks'>);> > >System.out.println(>'Initial LinkedList '> + ll);> > >ll.set(>1>,>'For'>);> > >System.out.println(>'Updated LinkedList '> + ll);> >}> }>

objekta pārvēršana virknē
>

>

Izvade

Initial LinkedList [Geeks, Geeks, Geeks] Updated LinkedList [Geeks, For, Geeks]>

3. darbība: Elementu noņemšana

Lai noņemtu elementu no LinkedList, mēs varam izmantot metodi remove() . Šī metode ir pārslogota, lai veiktu vairākas darbības, pamatojoties uz dažādiem parametriem. Viņi ir:

    noņemt(Objekts): šo metodi izmanto, lai vienkārši noņemtu objektu no LinkedList. Ja ir vairāki šādi objekti, tiek noņemta pirmā objekta parādīšanās. remove(int index): tā kā LinkedList ir indeksēts, šī metode ņem vesela skaitļa vērtību, kas vienkārši noņem elementu, kas atrodas šajā konkrētajā LinkedList indeksā. Pēc elementa noņemšanas tiek atjaunināti elementu indeksi, tāpat tiek atjaunināts arī LinkedList objekts, pēc elementa/-u dzēšanas tiek izveidots jauns saraksts.

Zemāk ir aprakstīta iepriekš minētās darbības īstenošana:

Java




// Java program to remove elements> // in a LinkedList> > import> java.util.*;> > public> class> GFG {> > >public> static> void> main(String args[])> >{> >LinkedList ll =>new> LinkedList();> > >ll.add(>'Geeks'>);> >ll.add(>'Geeks'>);> >ll.add(>1>,>'For'>);> > >System.out.println(>'Initial LinkedList '> + ll);> > >// Function call> >ll.remove(>1>);> > >System.out.println(>'After the Index Removal '> + ll);> > >ll.remove(>'Geeks'>);> > >System.out.println(>'After the Object Removal '> >+ ll);> >}> }>

>

>

Izvade

Initial LinkedList [Geeks, For, Geeks] After the Index Removal [Geeks, Geeks] After the Object Removal [Geeks]>

4. darbība: LinkedList atkārtošana

Ir vairāki veidi, kā atkārtot, izmantojot LinkedList. Slavenākie veidi ir pamata for cilpas izmantošana kopā ar get() metodi, lai iegūtu elementu noteiktā indeksā un uzlaboto for-cilpu.

Zemāk ir aprakstīta iepriekš minētās darbības īstenošana:

Java




// Java program to iterate the elements> // in an LinkedList> > import> java.util.*;> > public> class> GFG {> > >public> static> void> main(String args[])> >{> >LinkedList ll> >=>new> LinkedList();> > >ll.add(>'Geeks'>);> >ll.add(>'Geeks'>);> >ll.add(>1>,>'For'>);> > >// Using the Get method and the> >// for loop> >for> (>int> i =>0>; i System.out.print(ll.get(i) + ' '); } System.out.println(); // Using the for each loop for (String str : ll) System.out.print(str + ' '); } }>

>

>

Izvade

Geeks For Geeks Geeks For Geeks>

4. darbība: saraksts ir saistīts ar To Array, izmantojot toArray();

Java




import> java.util.*;> public> class> GFG2 {> >public> static> void> main(String[] args)> >{> >LinkedList list=>new> LinkedList();> >list.add(>123>);> >list.add(>12>);> >list.add(>11>);> >list.add(>1134>);> >System.out.println(>'LinkedList: '>+ list);> >Object[] a = list.toArray();> >System.out.print(>'After converted LinkedList to Array: '>);> >for>(Object element : a)> >System.out.print(element+>' '>);> >}> }>

>

>

Izvade

LinkedList: [123, 12, 11, 1134] After converted LinkedList to Array: 123 12 11 1134>

Darbība 5-size();

Java

atrodiet bloķētos numurus operētājsistēmā Android




import> java.io.*;> import> java.util.LinkedList;> public> class> GFG2 {> >public> static> void> main(String args[]) {> >LinkedList list =>new> LinkedList();> >list.add(>'Geeks for Geeks '>);> >list.add(>'is best '>);> >// Displaying the size of the list> >System.out.println(>'The size of the linked list is: '> + list.size());> >}> }>

>

>

Izvade

The size of the linked list is: 2>

7. operācija – removeFirst();

Java




import> java.io.*;> import> java.util.LinkedList;> public> class> GFG2 {> >public> static> void> main(String args[]) {> > >LinkedList list =>new> LinkedList();> >list.add(>10>);> >list.add(>20>);> >list.add(>30>);> >System.out.println(>'LinkedList:'> + list);> >System.out.println(>'The remove first element is: '> + list.removeFirst());> >// Displaying the final list> >System.out.println(>'Final LinkedList:'> + list);> >}> }>

>

>

Izvade

LinkedList:[10, 20, 30] The remove first element is: 10 Final LinkedList:[20, 30]>

Operācija 8- removelast();

Java




import> java.io.*;> import> java.util.LinkedList;> public> class> GFG2 {> >public> static> void> main(String args[])> >{> > >LinkedList list =>new> LinkedList();> >list.add(>10>);> >list.add(>20>);> >list.add(>30>);> >System.out.println(>'LinkedList:'> + list);> >// Remove the tail using removeLast()> >System.out.println(>'The last element is removed: '> + list.removeLast());> >// Displaying the final list> >System.out.println(>'Final LinkedList:'> + list);> >// Remove the tail using removeLast()> >System.out.println(>'The last element is removed: '> + list.removeLast());> >// Displaying the final list> >System.out.println(>'Final LinkedList:'> + list);> >}> }>

>

>

Izvade

LinkedList:[10, 20, 30] The last element is removed: 30 Final LinkedList:[10, 20] The last element is removed: 20 Final LinkedList:[10]>

Java LinkedList klase ir daļa no Java kolekciju ietvara un nodrošina List interfeisa saistīto sarakstu ieviešanu. Tas ļauj saglabāt un izgūt elementus divkāršā saraksta datu struktūrā, kur katrs elements ir saistīts ar tā priekšgājēju un pēcteci.

Šeit ir vienkāršs piemērs, kas parāda, kā izmantot LinkedList Java:

Java




labākā hentai
import> java.util.LinkedList;> > public> class> LinkedListExample {> >public> static> void> main(String[] args) {> >// Create a new linked list> >LinkedList linkedList =>new> LinkedList();> > >// Add elements to the linked list> >linkedList.add(>1>);> >linkedList.add(>2>);> >linkedList.add(>3>);> > >// Add an element to the beginning of the linked list> >linkedList.addFirst(>0>);> > >// Add an element to the end of the linked list> >linkedList.addLast(>4>);> > >// Print the elements of the linked list> >for> (>int> i : linkedList) {> >System.out.println(i);> >}> >}> }>

>

>

Izvade

0 1 2 3 4>

LinkedList izmantošanas priekšrocības Java:

  1. Dinamiskais izmērs: tāpat kā vektora gadījumā, LinkedList lielums var dinamiski pieaugt vai sarukt, tāpēc jums nav jāuztraucas par sākotnējā izmēra iestatīšanu.
  2. Efektīva ievietošana un dzēšana: LinkedList ir efektīva datu struktūra elementu ievietošanai vai dzēšanai saraksta vidū, jo jums ir jāmaina tikai saites starp elementiem, nevis jāpārvieto visi elementi pēc ievietošanas vai dzēšanas punkta.
  3. Elastīga iterācija: izmantojot saistīto sarakstu, varat efektīvi atkārtot sarakstu abos virzienos, jo katram elementam ir atsauce gan uz tā priekšgājēju, gan uz nākamo elementu.

LinkedList izmantošanas trūkumi Java:

  1. Veiktspēja: LinkedList ir lēnāka veiktspēja nekā ArrayList, kad runa ir par piekļuvi atsevišķiem elementiem. Tas ir tāpēc, ka jums ir jāšķērso saraksts, lai sasniegtu vēlamo elementu, savukārt, izmantojot ArrayList, jūs varat vienkārši piekļūt vajadzīgajam elementam, izmantojot indeksu.
  2. Atmiņa: LinkedList prasa vairāk atmiņas nekā ArrayList, jo katram elementam ir nepieciešama papildu atmiņa saitēm uz tā priekšgājēja un pēcteces elementiem.

Rokasgrāmata:

Laba uzziņu grāmata, lai uzzinātu par Java Collections Framework un LinkedList, ir Naftalin un Wadler Java kolekcijas. Šī grāmata sniedz visaptverošu ieskatu Java kolekciju sistēmā, tostarp LinkedList, un ietver daudzus piemērus un vingrinājumus, lai palīdzētu jums saprast, kā efektīvi izmantot šīs klases.