Hallo zusammen,
bei mir tut sich gerade wieder absolute Verwirrung auf :-(
Ich verstehe gerade nicht wieso ich mit der Hilfsklasse Collections in der Methode sort(...) den Comparator nicht als Lambda übergeben kann.
Hier mal mein Beispiel:
So funktioniert mein Beispiel. Nun wollte ich mir aber die Anonyme Klasse sparen und hab versucht das ganze so zu coden:
Hier erkennt er die compareTo Methode nicht. Schaut man sich nun die Klassen genauer an ruft die Collections.sort auch nur die List.sort Methode auf!
Kann mir jetzt jemand erklären wieso ich den Lambda Ausdruck nicht in der Collections.sort Methode als Argument übergeben kann? Oder habe ich einen anderen Fehler gemacht?
bei mir tut sich gerade wieder absolute Verwirrung auf :-(
Ich verstehe gerade nicht wieso ich mit der Hilfsklasse Collections in der Methode sort(...) den Comparator nicht als Lambda übergeben kann.
Hier mal mein Beispiel:
Java:
List<String> sting = new ArrayList<>();
sting.add("Abc");
sting.add("Bac");
sting.add("bBc");
sting.add("aAc");
Collections.sort(sting, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return o2.compareTo(o1);
}
});
sting.sort((String o1, String o2) -> o1.compareTo(o2));
So funktioniert mein Beispiel. Nun wollte ich mir aber die Anonyme Klasse sparen und hab versucht das ganze so zu coden:
Java:
Collections.sort(sting, (String o1, String o2) -> o2.compareTo(o1));
Java:
public static <T> void sort(List<T> list, Comparator<? super T> c) {
list.sort(c);
}
Kann mir jetzt jemand erklären wieso ich den Lambda Ausdruck nicht in der Collections.sort Methode als Argument übergeben kann? Oder habe ich einen anderen Fehler gemacht?