Avatar billede playmo Nybegynder
13. december 2001 - 14:48 Der er 13 kommentarer og
1 løsning

Vector Sortering

Hvis jeg har lavet en Vector med X antal datafelter der indeholder Strings. Hvordan laver man en simpel sorterings algoritme der sortere Strings\'ne alfabetisk i outputtet.??

På forhånd tak

Playmo
Avatar billede disky Nybegynder
13. december 2001 - 14:52 #1
spyt dem over i et array, lav sorteringen der, og læg dem tilbage i vectoren.
Avatar billede disky Nybegynder
13. december 2001 - 14:52 #2
Array har en sorteringsmetode
Avatar billede sajbar Nybegynder
13. december 2001 - 14:54 #3
eller lav en funktion der laver en compareto..
men det nemeste vil helt klart være at smide dem over i et array
Avatar billede mallemab Nybegynder
13. december 2001 - 15:03 #4
Vector v = new Vector();
        v.add(\"mn\");
        v.add(\"a\");
        v.add(\"jn\");
        v.add(\"cin\");
        v.add(\"etin\");
        v.add(\"gain\");
        v.add(\"lart\");
       
        Iterator i = (new TreeSet(v)).iterator();
       
        while (i.hasNext())
        {
            System.out.println(i.next());
        }
Avatar billede martin_schou Nybegynder
13. december 2001 - 15:19 #5
mallemab: Det hjælper jo kun, hvis Vector\'en kun skal bruges den ene gang. Hvis det er et ofte tilgået array, som skal være sorteret, skal sorteringen være permanent, og det gøres bedst vha en metode til det:

private void Sorter()
  {
    Vector vTemp = new Vector();
    Iterator i = (new TreeSet(v)).iterator();
    while (i.hasNext())
      {
        vTemp.add( i.next() );
      }
    v.clear();
    v = vTemp();
  }
Avatar billede martin_schou Nybegynder
13. december 2001 - 15:21 #6
v = vTemp();

skal selvfølgelig være

v = vTemp;
Avatar billede playmo Nybegynder
13. december 2001 - 16:44 #7
Mallemab: Gider du forklare kort hvad der sker her???:

Iterator i = (new TreeSet(v)).iterator();
       
        while (i.hasNext())
        {
            System.out.println(i.next());
        }

Så er de 50 point dine
Avatar billede martin_schou Nybegynder
13. december 2001 - 16:53 #8
Man laver en iterator (til at lave gennemløb) over et TreeSet (sorterer inputtet).

While-løkken gennemløber iteratoren.
Avatar billede playmo Nybegynder
13. december 2001 - 17:02 #9
Hvordan henter man en Vector ind i et Array???
Avatar billede martin_schou Nybegynder
13. december 2001 - 17:12 #10
Object[] vArray = Vector.toArray();

Java Documentation er din ven.

Avatar billede playmo Nybegynder
13. december 2001 - 18:28 #11
Virker ikke på min komp...sååå deeet..
Avatar billede logical Nybegynder
14. december 2001 - 08:45 #12
Har du kigger på klassen

java.util.Collections.sort(List)

Så et eksempel på at sortere en vector med strings i alfabetisk orden:

Vector v = ....;
Collection.sort(v);
Avatar billede martin_schou Nybegynder
15. december 2001 - 02:00 #13
Logical: Okay - den havde jeg sgu ikke lige set; du burde da have points for den løsning, da det er klart den smarteste.

Laver lige et nyt spørgsmål til 50 points, så du kan få som fortjent :-)
Avatar billede martin_schou Nybegynder
15. december 2001 - 02:01 #14
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