Innhold
Slik organiserer du en koblet liste i Java. En lukket liste er en av de viktigste typer datastrukturer i programmeringsverdenen. Det er en organisasjon av noder som inneholder data og referanser som peker til neste knutepunkt. For å sortere en koblet liste i Java, er det en listeklasse som fungerer med samlingsrammen, som implementerer algoritmer som en bestilling.
retninger
Organisere Linked List i Java (forhørsbilde av danimages fra Fotolia.com)-
Erklær den koblede listen ved å opprette et nytt LinkedList-objekt og tilordne en LinkedList-variabel. En LinkedList kommer fra den generiske listen klassen, så en metode som aksepterer en liste, vil også bli akseptert av LinkedList-objektet. "" LinkedList l = new LinkedList (); ""
-
Legg til objekter av samme type (for eksempel heltall) til listen. Disse kan være objekter av noe slag, men for å sortere den lenkede listen, må alle være av samme type.
-
Bruk List.addFirst-metoden til å sette inn nye objekter øverst i listen, slik at alle objekter du legger til, er i motsatt rekkefølge. Hvis du vil legge dem til slutten av listen, bruker du List.addLast-metoden. "" list.addFirst (1); list.addFirst (3); list.addFirst (2); "
-
Bruk en iterator til å iterere gjennom listen og skriv ut den før og etter at du ser hva sorteringsmetoden gjør. "" for (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "
Sorter en lenket liste i Java
-
Sorter listen med standardkomparatoren. En komparator er en gjenstand som sammenligner to objekter. Standardkomparatorobjektet bruker den mindre operatøren, så listen er bestilt i stigende rekkefølge. For å sortere listen, bruk den statiske samlingen.sort-metoden. "" Collections.sort (liste); ""
-
y) {return -1; "> Bestil listen med en tilpasset comparer ved å skrive en klasse som implementerer et sammenligningsgrensesnitt og overføre det til en instans som et bestillingsargument. Klassen som implementerer komparatoren, har bare til å implementere den enkle "offentlig klasse GreaterThan implementerer Comparator annet hvis (x == y) {return 0;} else {return 1;}}}"
-
Bruk anropet til Collections.sort ved å sende en ny forekomst av GreaterThan som et annet argument. Siden objektene som er større vil være foran de andre, vil listen bli sortert i synkende rekkefølge i stedet for stigende rekkefølge. Alternativt, hvis du sorterer en liste over objekter fra en egendefinert klasse som du har skrevet deg selv, kan denne klassen implementere Sammenligningsgrensesnittet i stedet for å bruke den separate Comparator-klassen. "" Collections.sort (liste, ny GreaterThan ()); ""
Sorter med standard og tilpassede komparatorer
tips
- Det er problematisk å bruke et heltall for å iterere i kretsen og List.size () -metoden. Iterering av en lukket liste er en kostbar beregningsoperasjon. Når du bruker en indeksoperatør (som l [2]) som i en kommando, må Java lukte over listen til den når indeks 2. For små lister er dette et problem, men med noe stort, bruker indeksoperatøren til å iterere blir til noe som krever mange ressurser.
- Uansett hvordan List-objektet er implementert, siden LinkedList implementerer det samme grensesnittet.
- Sammenligningsmetoden bør returnere til -1 hvis arg0 er bestilt før arg1, 0 hvis det er bestilt like, og 1 hvis arg1 er bestilt før arg0.
advarsel
- Iteratorobjektet sikrer at hver node i listen bare besøker en gang. Dette er viktig å huske, siden det å besøke oss uten behov kunne misbruke datastrukturene til det punktet der programmet virker feil.