Hallo,
ich denke, irgendwie steh ich grad aufm Schlauch, was den Comparator betrifft.
Hab mir grad nochmal das Beispiel in der FAQ angeschaut, sowie rumgegoogelt.
Aber irgendwie isses anders wie ich mir es vorgestellt habe.
Ein Kleines Beispiel:
Liste mit Chars/Strings: [A, C, E, G, I]
Ich möchte nun, dass sortiert wird, dass das "E" immer an erster Stelle steht -> [E, A, C, G, I]
Dabei kam jetzt folgender unten stehender (funktionierender) Code raus.
ABER eigentlich war ich der Meinung, das die if-Abfrage ein -1 zurückgeben müsste, weil ja mein "E" immer "kleiner" sein soll, als der andere
Aber funktioniert nicht. Stehe ich da irgendwie aufm Schlauch?
Klärt mich mal jemand bitte auf?
mfg Verjigorm
ich denke, irgendwie steh ich grad aufm Schlauch, was den Comparator betrifft.
Hab mir grad nochmal das Beispiel in der FAQ angeschaut, sowie rumgegoogelt.
Aber irgendwie isses anders wie ich mir es vorgestellt habe.
Ein Kleines Beispiel:
Liste mit Chars/Strings: [A, C, E, G, I]
Ich möchte nun, dass sortiert wird, dass das "E" immer an erster Stelle steht -> [E, A, C, G, I]
Dabei kam jetzt folgender unten stehender (funktionierender) Code raus.
ABER eigentlich war ich der Meinung, das die if-Abfrage ein -1 zurückgeben müsste, weil ja mein "E" immer "kleiner" sein soll, als der andere
Aber funktioniert nicht. Stehe ich da irgendwie aufm Schlauch?
Klärt mich mal jemand bitte auf?
mfg Verjigorm
Code:
package comparatortest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ComparatorTest {
/**
* @param args
*/
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("A");
list.add("C");
list.add("E");
list.add("G");
list.add("I");
System.out.println(list);
Collections.sort(list, new Comparator<String>()
{
@Override
public int compare(String o1, String o2)
{
if(o2.equals("E"))
return 1;
return o1.compareTo(o2);
}
});
System.out.println(list);
}
}