Collections.sort und List.sort mit Lambda Verwirrung

ocsme

Top Contributor
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:
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));
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!
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?
 

mrBrown

Super-Moderator
Mitarbeiter
Bei mir funktioniert Collections.sort(sting, (o1, o2) -> o2.compareTo(o1)); problemlos. Compilierst du "per Hand" oder meckert nur die IDE, wenn ja welche?
 

temi

Top Contributor
Bei mir funktionieren auch alle diese Möglichkeiten
Java:
sting.sort((String o1, String o2) -> o1.compareTo(o2));
sting.sort((o1, o2) -> o1.compareTo(o2));
sting.sort(Comparator.naturalOrder());
sting.sort(String::compareTo);
 

ocsme

Top Contributor
Ohha ihr habt recht! Ich hätte es einfach mal laufen lassen sollen oh weh.
Es geht, Eclipse erkennt nur die Methoden von String in diesem Falle nicht :-( Wieso weis ich gerade auch nicht. Muss eh mal wieder alles neu aufsetzen.

Dann liegt es also nicht an meinem Verständnis sondern an der IDE :-D
Entschuldigung das war ja jetzt wieder voll Banane von mir =D

@temi ja das geht bei mir ja auch alles :) Es geht um den Aufruf Collections.sort(List, Comparator) <- dort konnte ich den Comparaotr als Lambda nicht übergeben bzw. Eclipse zeigt dann nicht wie gewohnt die Methoden von Stirng z. B. an :-( Darauf dachte ich, ich hätte etwas Falsch gemacht also hab ich den Comparator als Anonyme Klasse ausgecodet. Dort geht das natürlich alles :-D danach war die Verwirrung groß.
Ja so ist das wenn man sich zu sehr an etwas gewöhnt ist ja auch angenehm :-D
 
Zuletzt bearbeitet:

temi

Top Contributor
@temi ja das geht bei mir ja auch alles :)
Ist ja alles geklärt, deine andere Variante funktioniert natürlich auch:
Java:
Collections.sort(sting, (String o1, String o2) -> o2.compareTo(o1));
Collections.sort(sting, (o1, o2) -> o2.compareTo(o1));
Collections.sort(sting, Comparator.naturalOrder());
Collections.sort(sting, String::compareTo);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Collections.sort als Lambda Java Basics - Anfänger-Themen 14
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
P collections.sort Java Basics - Anfänger-Themen 2
H Etwas wie sort() / sorted() in JAVA-Collections? Java Basics - Anfänger-Themen 5
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
N Collections Sort ArrayList<> Java Basics - Anfänger-Themen 7
D Collections.sort() frage Java Basics - Anfänger-Themen 6
U Sortierung in collections testen Java Basics - Anfänger-Themen 11
I Collections.shuffle funktioniert nicht Java Basics - Anfänger-Themen 1
M Collections Frage Java Basics - Anfänger-Themen 1
D Methoden Collections.shuffle mit bestimmtem Startwert? Java Basics - Anfänger-Themen 8
T Java Collections Java Basics - Anfänger-Themen 58
X Collections Collections Maps Frage Java Basics - Anfänger-Themen 4
C Collections: private Map Java Basics - Anfänger-Themen 4
V Collections Java Basics - Anfänger-Themen 3
A Collections Java Basics - Anfänger-Themen 2
R Iterationsreihenfolge über Collections Java Basics - Anfänger-Themen 4
S Klassen Collections Java Basics - Anfänger-Themen 10
J Polymorphie Iteratoren statt Collections Java Basics - Anfänger-Themen 13
F Collections ArrayList oder Hashmap mittel Collections.sychronised Java Basics - Anfänger-Themen 6
S Bestimmte Objekte aus Collections anwählen/herausbekommen Java Basics - Anfänger-Themen 8
M Collections mit >2 type Parametern? Java Basics - Anfänger-Themen 8
S Frage zu Collections.frequency() Java Basics - Anfänger-Themen 3
T Collections Übersicht Collections Java Basics - Anfänger-Themen 4
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
K Telefonbuch Implementation mit Java Collections Java Basics - Anfänger-Themen 4
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
S Collections Sortieren von 3 Collections nach "einer Sortierung" Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
A Collections und ArrayList Java Basics - Anfänger-Themen 2
S Klasse Mit Collections Java Basics - Anfänger-Themen 32
X DB4O Collections and Arrays, brauche dringend Hilfe! Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8
K Aufgabe Collections Java Basics - Anfänger-Themen 2
D Collections - subList erstellen Java Basics - Anfänger-Themen 4
S Frage zu Enumerator der trad.Collections Java Basics - Anfänger-Themen 8
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
T array erweitern/flexible ohne collections usw. Java Basics - Anfänger-Themen 3
S Collections Java Basics - Anfänger-Themen 13
M Collections{Liste aus Objekten erzeugen] Java Basics - Anfänger-Themen 19
S generics und Collections#unmodifiableList Java Basics - Anfänger-Themen 2
G Wann Arrays, wann Collections? Java Basics - Anfänger-Themen 36
N Suche Infos zu Maps - Collections Java Basics - Anfänger-Themen 4
G erstes Arbeiten mit Collections Java Basics - Anfänger-Themen 17
Zed Collections? ArrayList, Vector. Java Basics - Anfänger-Themen 2
M Collections kopieren (ArrayList<Point>) Java Basics - Anfänger-Themen 3
T Fragen zu Collections Java Basics - Anfänger-Themen 2
J Collections "schachteln" Java Basics - Anfänger-Themen 5
ff Java Collections Java Basics - Anfänger-Themen 4
H Collections Frameworks Java Basics - Anfänger-Themen 38
T Object Collections durchsuchen und nutzen Java Basics - Anfänger-Themen 6
S Mit Collections elemente sammeln Java Basics - Anfänger-Themen 7
G Java Collections Framework : id + 5 Werte , gibt es sowas Java Basics - Anfänger-Themen 4
frau-u Collections und Interfaces Java Basics - Anfänger-Themen 2
emreiu Formatiertes Output bei Insertion Sort Java Basics - Anfänger-Themen 6
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
L Insertion Sort bei zweidimensionalem Array Java Basics - Anfänger-Themen 7
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
Marc111111111 Selection Sort in Java?? Java Basics - Anfänger-Themen 6
G Insertion Sort mit Aray Java Basics - Anfänger-Themen 5
M Collection.sort sortiert nicht Java Basics - Anfänger-Themen 7
CptK Best Practice Merge-Sort als Baum darstellen Java Basics - Anfänger-Themen 3
P Java Bubble Sort,Anfängerfehler Java Basics - Anfänger-Themen 4
S Methoden Sort Array Java Basics - Anfänger-Themen 9
I Erste Schritte sort() vs. sort() Java Basics - Anfänger-Themen 9
BadBat ArrayList<String> sort by last word Java Basics - Anfänger-Themen 8
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
X Quick Sort - Vergleichsoperationen zählen Java Basics - Anfänger-Themen 0
O Insertion Sort Java Basics - Anfänger-Themen 4
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
N Schlüsselworte Bubble Sort nach eigener Ordnung Java Basics - Anfänger-Themen 8
J Fehler im Selection Sort Java Basics - Anfänger-Themen 5
O Listen sort-Methode Java Basics - Anfänger-Themen 1
M Quick Sort Java Basics - Anfänger-Themen 4
V Heap-Sort Java Basics - Anfänger-Themen 0
M Methoden Quick Sort Java Basics - Anfänger-Themen 5
T array.sort mit zwei Kriterien Java Basics - Anfänger-Themen 8
S Liste und Bubble Sort Java Basics - Anfänger-Themen 4
H Collections Was ist schneller - HashMap + Sort v TreeMap? Java Basics - Anfänger-Themen 75
S Fehler bei Arrays.sort(array) - Methode!? Java Basics - Anfänger-Themen 3
B Arrays.sort Java Basics - Anfänger-Themen 4
P schneller Sort ? Java Basics - Anfänger-Themen 2
S Bubble Sort Java Basics - Anfänger-Themen 5
B Merge-Sort Analyse Java Basics - Anfänger-Themen 27
K Array.sort() Java Basics - Anfänger-Themen 12
B 2 dimensionales Array: Selection Sort Java Basics - Anfänger-Themen 4
F Methoden Insert Sort Fehler Java Basics - Anfänger-Themen 10
P Ein sort problem Java Basics - Anfänger-Themen 6
S Bubble Sort Algorithmus Java Basics - Anfänger-Themen 3
N Selection Sort Problem Java Basics - Anfänger-Themen 19
Spin sort tokens - somebody knows a better solution? Java Basics - Anfänger-Themen 13
B Strings alphabentisch sortieren mit Hilfe von insertion sort Java Basics - Anfänger-Themen 6
P Array.sort // Arrays ausgeben Java Basics - Anfänger-Themen 21
S String sortieren mit Interface und sort() Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben