# Sortierung mit Collections.sort()



## Tina88 (24. Okt 2007)

Hallo, ich habe einen Vector der mit Strings gefüllt ist. Ich möchte den Inhalt nun sortieren und habe das ganze so probiert: 

```
Collections.sort((List)einVector());
```
Die Sortierung funktioniert soweit auch nur Probleme gibt es bei Großschreibung:
z.B. ist das Wort HEINZ vor dem Wort Hallo da HEINZ großgeschrieben ist. Wie muss ich denn meine Sortierung ändern, dass korrekt sortiert wird? 
Danke für eure Hilfe


----------



## Gast (24. Okt 2007)

bei der Prüfung 


if (String1.equalsIgnoreCase(String2))...


oder??


----------



## Tina88 (24. Okt 2007)

vergleichen, sondern eine ganze Liste mit möglichst wenig Code sortiert bekommen und das Ganze eben nicht Case-sensitive. Da gibt es doch sicher eine Möglichkeit


----------



## Guest (24. Okt 2007)

```
//Very Fast Sorting algorithmus. Hat eine garantierte Geschwindigkeit(Vorteil zu Quicksort)
    public Collection Mergesort(Collection Input) {
        
        Object[] a = Input.toArray();
        Arrays.sort(a,new Comparator() {
            public int compare(Object o1, Object o2) {
                return (((dataobject)o1).getmitgliedsnr().compareTo(((dataobject)o2).getmitgliedsnr())); }});
                
                return(Arrays.asList(a));
                
    }
```


ändere den Code einfach nach deinen Vector ab.  und vor dem compareTo machste noch ein toUpperCase


----------



## maki (24. Okt 2007)

```
Collections.sort((List)einVector());
```
Einen Vector braucht man nicht zu casten, den ein Vector ist eine List.

Was du brauchst, ist ein besonderer Comparator (unbedingt mal googeln), damit lässt sich die Sortierreihenfolge bestimmen 

Glücklicherweise bietet die Klasse String genau den Comparator den du brauchst:


```
Collections.sort(einVector, String.CASE_INSENSITIVE_ORDER);
```


----------

