Avatar billede kenneth_breve Nybegynder
12. december 2007 - 12:15 Der er 5 kommentarer og
1 løsning

Sortere arraylist

Jeg har en Arraylist med f.eks. 5 elementer indeholdende:

[0] = "Peter"
[1] = "Ida"
[2] = "Ida"
[4] = "Peter"
[5] = "Peter"

Udfra denne liste vil jeg udskrive de forskellige navne, dvs. i dette eksempel:

"Peter"
"Ida"


Koden skal bruges til at finde de forskellige navne i en liste med ca. 60000 navne (hvor der altså er mange gentagelser af samme navn), så koden skal være rimelig effektiv.
Avatar billede erikjacobsen Ekspert
12. december 2007 - 12:37 #1
hashtabel?
Avatar billede di8leva Nybegynder
12. december 2007 - 12:37 #2
Vil du sortere, eller udskrive, eller både?

60.000 objekter er ikke ret meget, det tar ikke sa lang tid at löbe gennem, du kan f.eks bruge:

        ArrayList list = new ArrayList();
        // Sort
        Collections.sort(list);
        // Print
        Set names = new HashSet();
        for(int i = 0; i < list.size(); i++) {
            String name = (String)list.get(i);
            if(!names.contains(name)) {
                System.out.println(name);
                names.add(name);
            }
        }
Avatar billede kenneth_breve Nybegynder
12. december 2007 - 13:05 #3
Mange tak for koden, virker perfekt :-)

Smid et svar!
Avatar billede di8leva Nybegynder
12. december 2007 - 13:15 #4
svar :)
Avatar billede erikjacobsen Ekspert
12. december 2007 - 13:16 #5
Der er ingen grund til at sortere inden gennemløbet, der putter navnene i hashtabellen.
Avatar billede di8leva Nybegynder
12. december 2007 - 13:22 #6
Ikke mer en at titeln på spörgsmålet er "Sortere arraylist".... derfor tilföjede jeg sortering også, hvis han også vil ha udskrevet i alfabetisk räkkefölge
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