# ArrayList nach Strings sortieren



## reinpecht (5. Nov 2010)

ich kann ja eine ArrayList nach Strings sortieren lassen, aber da sortiert sie nach der Länge der Strings oder???
ich möchte aber nach dem Inhalt sortieren ist das auch irgendwie möglich oder muss ich da eine eigene Methode schreiben ?

mfg


----------



## Haave (5. Nov 2010)

reinpecht hat gesagt.:


> ich kann ja eine ArrayList nach Strings sortieren lassen, aber da sortiert sie nach der Länge der Strings oder???


So weit ich weiß, nein.
Die compareTo()-Methode, die String vom Interface Comparable hat, ist so geschrieben, dass die Strings alphabetisch sortiert werden. Diese Methode wird aufgerufen, wenn du deine ArrayList<String> z.B. von Collections sortieren lässt:

```
Collections.sort(deineArrayList);
```

Wenn du möchtest, dass die Strings anders sortiert werden (z.B. nach Länge), kannst du eine eigene Klasse machen, die Comparator implementiert, und dann in der sort()-Methode eine Instanz davon mit übergeben:

```
Collections.sort(deineArrayList, new deinEigenerComparator());
```


----------



## Marco13 (5. Nov 2010)

Man kann aber auch einen eigenen Comparator übergeben, wenn man's anders sortiert haben will...


----------



## reinpecht (5. Nov 2010)

Haave hat gesagt.:


> So weit ich weiß, nein.
> Die compareTo()-Methode, die String vom Interface Comparable hat, ist so geschrieben, dass die Strings alphabetisch sortiert werden. Diese Methode wird aufgerufen, wenn du deine ArrayList<String> z.B. von Collections sortieren lässt:
> 
> ```
> ...



aber ich habe ArrayList<Objekt> und dort sortiere ich nach einer Variable ...


----------



## Haave (5. Nov 2010)

reinpecht hat gesagt.:


> aber ich habe ArrayList<Objekt> und dort sortiere ich nach einer Variable ...


Meinst du die Klasse Object oder eine eigene Klasse von dir namens Objekt?


----------



## bygones (5. Nov 2010)

reinpecht hat gesagt.:


> aber ich habe ArrayList<Objekt> und dort sortiere ich nach einer Variable ...



oben schreibst du noch was von String... was hast du nun ?!

und wenn du sortieren lässt... was verwundert dich dann an der Sortierung ?!

sonst hat Haave recht - strings werden per default lexikografisch sortiert


----------



## ARadauer (5. Nov 2010)

> aber ich habe ArrayList<Objekt> und dort sortiere ich nach einer Variable ...


generell ist es schlecht, ein ArrayList<Objekt> zu haben, was sind das für Objekte? Warum hast du die gemeinsam in einer Liste?


----------

