Frage zum Interface Comparable

Mane123

Bekanntes Mitglied
Hallo zusammen,

ich habe folgende Klasse gegeben:

Java:
	class Liste implements Comparable<Liste> {
		
		private int listePunkte;
		private String listeName;

		//der Konstruktor
		//er ruft die MEthode setzeEintrag() auf
		public Liste(int listePunkte, String listeName) {
			
			setzeEintrag(listePunkte, listeName);
		}
		
		//die überschriebene Vergleichsmethode
		//die Rückgabewerte steuern die Sortierung
		@Override
		public int compareTo(Liste tempList) {
			// TODO Auto-generated method stub
			
			if(this.listePunkte < tempList.listePunkte)
				return 1;
			
			if(this.listePunkte > tempList.listePunkte)
				return -1;
			
			else
				return 0;
		}
		
		
		//die Methode setzt Einträge in der Liste
		public void setzeEintrag(int listePunkte, String listeName) {
			
			this.listeName = listeName;
			this.listePunkte = listePunkte;
		}
		
		//die Methode liefert die Punkte
		public int getListePunkte() {
			
			return listePunkte;
		}
		
		//die Methode liefert den Namen
		public String getListeName() {
			
			return listeName;
		}
		
		
	}

In der Methode compareTo sollen zwei Objekte der Klasse Liste verglichen werden. Dabei handelt sich sich um Elemente einer Bestenliste, welche absteigend sortiert wird.

Als Definition zu der compareTo Methode steht in der Beschreibung zum Programm folgendes geschrieben:

Bei aufsteigender Sortierung muss ein Wert größer als 0 geliefert werden, wenn der aktuelle Wert kleiner ist als der "andere". Ist der "andere" Wert kleiner als der erste, muss einer Wert kleiner als 0 geliefert werden.
Bei absteigender Sortierung ist es genau andersherum: Ist der aktuelle Wert größer als der zweite, muss ein Wert kleiner als 0 geliefert werden, andernfalls ein Wert größer als 0. Sind die beiden Werte gleich, muss sowohl bei aufsteigender als auch bei absteigender Sortierung der Wert 0 zurückgegeben werden.

Ist das nicht das gleiche:

Wenn ich die aufsteigende Sortierung betrachte:

aktuellerWert < andererWert; return 1
aktuellerWert > andererWert; return -1
aktuellerWert == andererWert; return 0


Wenn ich die absteigende Sortierung betrachte:

aktuellerWert > andererWert; return -1
aktuellerWert < andererWert; return 1
aktuellerWert == andererWert; return 0

Das ist doch das gleiche, oder verstehe ich da was falsch?
 
Im Text steht: Bei absteigender Sortierung ist es genau andersherum?? Das stimmt ja gar nicht, wenn beides das gleiche ist?

Mein Hauptfrage ist, woran erkenne ich in der Methode, die ich erstellt habe, dass absteigend sortiert wird?

Viele Grüße
 

Zurück
Oben