# String Array sortieren (Bubble)



## kreilinger (26. Mrz 2007)

hallo forum,

habe mich früher mal kurz mit java beschäftigt ... 
unter anderem habe ich mal eine methode geschrieben, mit der ich ein integer-array aufsteigend sortieren konnte (glaube das heißt bubble oder sowas)

der code dazu wa das:


```
private static void sort(int[] a)
{
    for(int i = a.length - 1; i > 0; i--)
    {
         for(int j = 0; j < i; j++)
         {
             if(a[j] > a[j + 1])
             {
                 int z = a[j];
                 a[j] = a[j + 1];
                 a[j + 1] = z;
             }
         }
     }
}
```

das selbe müsste doch auch so ähnlich mit einem StringArray gehen (also alphabetisch dann) , oder?


in der java6-dok hab ich auch noch " compareTo() " gefunden, weiß aber grad nicht, wie ich das verwenden soll?


danke im voraus,
kreilinger


----------



## SlaterB (26. Mrz 2007)

überlege dir als erstes was 
a[j] > a[j + 1]
ist, bedeutet, und Auswirkung auf deinen Algorithmus hat,

da sind zum einen die etwas kryptischen Array-Indexe,
dann letztlich nur noch 
zahl1 > zahl2

das müsste irgendwie in dein Gehirn reingehen zum Verstehen,

-----

so, nun geht > oder < für Strings nicht, dafür gibts aber string1.compareTo(string2),
in der API kannst du eine ganze Seite dazu nachlesen,
ein entscheidener Satz:



> Returns:
> the value 0 if the argument string is equal to this string; a value less than 0 if this string is lexicographically less than the string argument; and a value greater than 0 if this string is lexicographically greater than the string argument.



kommt dir bekannt vor? also einsetzen, 
ein bisschen musst du aber schon alleine denken


----------



## kreilinger (26. Mrz 2007)

danke, habs schon gelöst (siehe code)

lg
kreilinger


```
private static void sort(String[] a)
{
    for(int i = a.length - 1; i > 0; i--)
    {
         for(int j = 0; j < i; j++)
         {
             if((a[j].compareTo(a[j + 1])) > 0)
             {
                 String z = a[j];
                 a[j] = a[j + 1];
                 a[j + 1] = z;
             }
         }
     }
}
```


----------

