Gå til innhold

Sortere liste alfabetisk.


Anbefalte innlegg

Har en liste med Person objekter.

Når jeg legger til en Person bruker jeg i dag denne koden:

 

public void leggTilPerson( Person p )
 {
   if ( hode == null )
   {
     hode = p;
     teller ++;
     return;
   }
   else
   {
     Person løper = hode;

     while ( løper.neste != null )
       løper = løper.neste;

     løper.neste = p;
     teller ++;

     return;
   }
 }

 

Denne legger bare inn bakerst i lista.

Ville gjerne hatt disse satt inn sortert etter navn.

Noen som har noen tips?

Lenke til kommentar
Videoannonse
Annonse

Nå looper du til slutten av lista og legger til personen der. Det du f. eks. kan gjøre er å loope, fremdeles så lenge du ikke har nådd slutten av lista, men også til du finner en person med navn som kommer etter den nye personen navn alfabetisk og sette inn den nye personen før denne..

Lenke til kommentar

La Person klassen implementere Comparable interfacet.

 

Da får Person objektene en metode "compareTo(Object o)" og du kan

gjøre slik( hvis p og p2 er et Person objekt)

 

int svar_like = p.compareTo(p2);

 

Du må selv lage metoden compareTo i klassen Person..tenk deg at du får

inn et Person objekt og skal sammenligne det med dette objektet på navn.

Hvordan du gjør det finner du ut, bare sørg for at metoden returnerer en negativ int hvis dette objektet er mindre enn,0 hvis det er likt og positiv int hvis det er større enn. http://java.sun.com/j2se/1.5.0/docs/api/ja...Comparable.html

Endret av zulo
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...