# LinkedList sortieren



## Lirave (19. Jan 2010)

Hallo ich habe eine Frage zu Sortierung von LinkedLists.

hätte ich ein Array könnte ich es mittels folgenden Befehls absteigend ordnen:
Arrays.sort(meinArray, Collections.reverseOrder()); 

In der LinkedList habe ich Objecte die immer  zwei integer beinhalten

Object1(mit h1,b1) --> Object2(mit h2,b2) -->     -->Objectn(mit hn,bn)

Nun würde ich diese Liste gern sortieren nach h1,....hn und zwar absteigend.

Angenommen hn > ... > h2 > h1.

Dann würde ich nach dem Sortieren gern folgende Liste erhalten
Objectn(mit hn,bn) -->  ---> Object2(mit h2,b2) -->     -->Object1(mit h1,b1)

Kennt ihr da eine funktionierende Möglichkeit ?

Gruß Robert


----------



## faetzminator (19. Jan 2010)

Dafür eignet sich für Collections wie die LinkedList folgendes: Collections (Java Platform SE 6)
Da musst du nur einen Comparator schreiben.


----------



## Marco13 (19. Jan 2010)

Schau mal unter dem Stichwort "Comparator", z.B. in http://www.java-forum.org/allgemeines/39510-arrays-listen-sortieren.html


----------



## Lirave (23. Jan 2010)

Habe jetzt meine 2 comparatoren geschrieben, diese liegen in einer separaten Datei:


```
import java.util.Comparator;

public class sort {
	
	public class sorthauf implements Comparator<Stein>{
		public int compare( Stein a, Stein b ) {
	        int hoehe1 = a.getHoehe();
	        int hoehe2 = b.getHoehe();
	            
	        if( hoehe1 < hoehe2 )
	            return -1;
	        if( hoehe1 > hoehe2 )
	            return 1;            
	        return 0;
	        
		}
	}
	
	public class sorthab implements Comparator<Stein>{
		public int compare( Stein a, Stein b ) {
	        int hoehe1 = a.getHoehe();
	        int hoehe2 = b.getHoehe();
	            
	        if( hoehe1 > hoehe2 )
	            return -1;
	        if( hoehe1 < hoehe2 )
	            return 1;            
	        return 0;
	        
		}
	}
	
}
```


Im Hauptprogramm will ich die jetzt aufrufen geht aber irgendwie nicht, derzeit mache ich es mit :

```
Comparator<Stein> comparator = new sort.sorthauf();
	        java.util.Collections.sort( Steine, comparator );
```

im Hauptprogramm habe ich auch import java.util.Comparator importiert.

Wisst ihr wie ich die Methode aufrufen kann ?

Gruß Robert


----------



## eRaaaa (23. Jan 2010)

Probiers mal mit 


```
Collections.sort(Steine, new sort().new sorthauf());
```

Allerdings merkwürdig, dass du Klassennamen klein schreibst und Variablen groß


----------



## Lirave (23. Jan 2010)

danke funktioniert 

habe mich da noch nicht so festgelegt, und glaube bin da auch nicht so konsequent
und jetzt alles umzubenennen habe ich keine Lust, merk es mir aber fürs nächste Projekt


----------

