Avatar billede azzodiac Nybegynder
19. januar 2004 - 22:57 Der er 10 kommentarer og
1 løsning

Sorter array af Strings

Hejsa.
Kan nogen hjælpe mig med en algoritme til at sortere et array af Strings?
På forhånd tak.
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 23:00 #1
Brug:

Arrays.sort(ditArray);
Avatar billede azzodiac Nybegynder
19. januar 2004 - 23:13 #2
Okay, jeg troede kun man kunne bruge den metode til int og char typer. Jeg tager altså fejl?
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 23:15 #3
Den kan også sortere Strings.
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 23:17 #4
Du kan også lave din egen Comparator.
Så bestemmer du hvilke kriterier der skal sorteres efter!
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 23:23 #5
Lad os sige du vil sortere omvendt, så laver du følgende lille klasse:

public class SorterOmvendt implements java.util.Comparator
{   
    public int compare(Object o2, Object o1)
    {
            return o1.toString().compareTo(o2.toString());
        }
}

og sorterer dit array med følgende:

Arrays.sort(ditArray, new SorterOmvendt());
Avatar billede dsj Nybegynder
19. januar 2004 - 23:23 #6
Hvis nu du brugte en List-instans i stedet for et array, f.eks. ArrayList, kan du gøre som følgende:

ArrayList myList = ...;
Collections.sort(myList);

Og vupti så er din ArrayList sorteret, jeg mener det som default gøres i alfabetisk rækkefølge, hvis det drejer sig om String's.
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 23:25 #7
Nu spørges der jo til et array af Strings :)
Så derfor er det vel naturligt at bruge Arrays.sort() ?
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 23:37 #8
Og måske en vigtig detalje:

Hvis du vil ha' dit array sorteret uafhængig af om det er store eller små bogstaver kan du bruge:

public class SorterOmvendt implements java.util.Comparator
{   
    public int compare(Object o2, Object o1)
    {
            return o2.toString().compareToIgnoreCase(o1.toString());
    }
}
Avatar billede arne_v Ekspert
19. januar 2004 - 23:38 #9
Evt. med et andet klassenavn

:-)
Avatar billede mikkelbm Nybegynder
19. januar 2004 - 23:40 #10
Ja, selvfølgelig.
Undskyld :)

Det går lidt for hurtigt nogle gange...
Avatar billede arne_v Ekspert
19. januar 2004 - 23:44 #11
I know
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester