Hvordan man kan sortere eksterne liste i Java

En linket liste er en af ​​de primære typer af datastrukturer i programmeringen verden.Det er et arrangement af knudepunkter, der indeholder både data og referencer peger på det næste knudepunkt.At sortere en linket liste i Java, er der en linket liste klasse, der arbejder med de rammer Samlinger, der implementerer algoritmer som sortering.

Sorter eksterne liste i Java

  1. Erklær den linkede liste ved at oprette en ny LinkedList objekt og tildele den til en LinkedList variabel.LinkedList arver fra den generiske List klassen, så enhver metode, der accepterer en liste vil også acceptere en LinkedList objekt.
    "" LinkedList l = new LinkedList () ""

  2. tilføje objekter af samme type (f.eks heltal) til listen.Disse kan være genstande af enhver type, men med henblik på at sortere en sammenkædet liste, bør de være af den samme type.

  3. Brug List.addFirst metode til at indsætte nye objekter til starten af ​​listen, så uanset hvad objekter du tilføjer, vil være i omvendt rækkefølge.

    Hvis du ønsker at tilføje dem til slutningen af ​​listen, skal du bruge List.addLast metoden "" list.addFirst (1).;
    list.addFirst (3);
    list.addFirst (2); ""

  4. Brug en Iterator at gentage over listen, og udskrive dem før, og bagefter at se, hvad den slags metode gør."" for (Iterator i = list.iterator (); i.hasNext ();) {
    System.out.println (i.next ());
    } ""

Sorter Brug Standard og brugerdefinerede komparatorer

  1. Sorter listen med standard komparator.En komparator er et objekt, der sammenligner to objekter.Objektet Standard komparator bruger mindre end operatøren, så listen vil blive sorteret i stigende rækkefølge.For at sortere listen, skal du bruge Collections.sort statisk metode "" Collections.sort (liste), "."

  2. Sorter listen med en brugerdefineret komparator ved at skrive en klasse, der implementerer komparator interface og overgår til det en instanssom et argument for at sortere.Den klasse, der kun implementerer komparator har at implementere enkelt metode "sammenligne.""" public class Større end implementerer Comparator {Override
    offentlige int sammenligne (Object arg0, Object arg1) {
    int x = (Integer) arg0;
    int y = (Heltal) arg1;
    if (x & gt; y) {
    tilbagevenden -1;
    } else if (x == y) {
    tilbagevenden 0;
    } else {
    tilbagevenden 1;
    }
    }} ""

  3. Brug kaldet til Collections.sort ved at bestå en ny instans til Større end som andet argument.Da objekter, der er større vil blive sorteret først, vil listen blive sorteret i faldende rækkefølge i stedet for stigende rækkefølge.Som et alternativ, hvis du sortere en liste over objekter af en brugerdefineret klasse du har skrevet, kan denne klasse implementere Sammenlignelige grænseflade stedet for at bruge en separat Comparator klasse. "" Collections.sort (liste, ny Større end ()) ""

Tips & amp;Advarsler

  • Det er problematisk at bruge en et heltal til at gentage for-løkke og List.size () metode.Iteration over en forbundet liste er en beregningsmæssig dyr operation.Ved brug af indekset operatøren (ligesom l [2]) som med et array, Java skal gentage over listen, indtil det får at indeksere 2. For små lister, er dette ikke et problem, men med noget større, ved hjælp afindekset operatøren gentage bliver meget ressourcekrævende dyrt.
  • Det er ligegyldigt, hvordan listen objektet er gennemført, da LinkedList implementerer samme interface.
  • Den sammenligner metoden skal returnere -1 hvis arg0 skal sorteres før arg1, 0, hvis det skal sorteres ligeligt og 1, hvis arg1 skal sorteres før arg0.
  • Den iterator objekt sikrer, at hver node på listen besøges én gang.Dette er en vigtig ting at huske, som besøger noder unødigt kan misbruge datastrukturer til det punkt, at dit program knapt vil køre.
448
0
1
Java Programmering