# integer absteigend sortieren



## sharlatan (21. Nov 2013)

Guten Morgen.

Gibt es eine methode um integer absteigend zu sortieren?

Bsp: int: 3, 1, 7, 3 
sortiert: 7,3,3,1

und noch eine andere frage:
wenn ich dasselbe mit strings noch alphabetischer reihenfolge machen will benutze ich collection sort. allerdings Kommen dann als erstes die Großgeschriebenen wörter alphabetisch sortiert und danach die klein-geschriebenen wörter wieder bei a anfangend.
gibt es nicht eine möglichkeit die groß/klein schreibung zu ignorieren?

schonmal danke an die beteiligten


----------



## HarleyDavidson (21. Nov 2013)

```
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;

public class IntSort
{
    public static void main (String[] args)
    {
        //Liste mit Zahlen
        Integer[] liste = {3,1,7,3};
        
        //ArrayList erstellen
        ArrayList<Integer> intList = new ArrayList<Integer>();
        //ArrayList befüllen
        for (Integer current : liste)
        {
            intList.add( current );
        }
        //Comparator erstellen
        Comparator<Integer> comparator = Collections.reverseOrder();
        //Sortieren
        Collections.sort( intList, comparator);
        //Ausgabe
        System.out.println( Arrays.asList( intList) );
    }
}
```

Und danach kannst du die ArrayList wieder in dein Format casten, welches du benötigst.


----------



## anti-held (21. Nov 2013)

Wenn du die Strings unabhängig von ihrer Groß- bzw. Kleinschreibung zu sortieren, könntest du es folgendermaßen machen:
Du schreibst alle Buchstaben des Strings erst klein und vergleichst diese danach.


```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class ListTest {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("Herbert");
		list.add("hier");
		list.add("hallo");
		list.add("Halt");
		list.add("huhu");

		System.out.println("unsortiert:");
		for (String item : list) {
			System.out.println(item);
		}

		Comparator<String> comparator = new Comparator<String>() {

			public int compare(String o1, String o2) {
				return o1.toLowerCase().compareTo(o2.toLowerCase());
			}

		};

		Collections.sort(list, comparator);

		System.out.println("\nsortiert:");
		for (String item : list) {
			System.out.println(item);
		}
	}

}
```

um das ganze dann noch in umgedrehter Reihenfolge zu sortieren, musst du in der compareTo() - Methode
die beiden Variablen o1 und o2 vertauschen.


----------

