Collections.sort als Lambda

Xalo

Mitglied
Hey ich bin gerade am lernen für meine Klausur am Dienstag und gehen ein paar altklausuren durch. Eine aufgabe ist :
Schreiben Sie einen Comparator<City> byCityDesc als Lambda-Ausdruck, so dass für eine
List<City> cities der Aufruf von Collections.sort(cities, byNameDesc) die Liste
nach Namen der Stadt absteigend sortiert (also zuerst die im Alphabet am weitesten hinten
stehende Stadt).

Das ist meine Klasse City:

Java:
public class City {
public String name;
public int postCode;
}
Hier hab ich Elemente erstellt und eingefügt:

Code:
 List<City> cities = new ArrayList<>();
        City stg = new City("stg",123456);
        City ham = new City("ham",541231);
        City fra = new City("fra",819237);
        City mun = new City("mun",192309);

        cities.add(stg);
        cities.add(ham);
        cities.add(fra);
        cities.add(mun);

Ich hab das mal für die Postcode Parameter gemacht
Code:
 Comparator<City> compare = (a,b) -> a.getPostCode() - b.getPostCode();
        cities.sort(compare);
       
cities.forEach(city -> System.out.println(city.getPostCode()));

Aber wie kriege ich das jetzt für die Name der Städte(also Strings) hin und ist das für PostCode soweit richtig?
 

KonradN

Top Contributor
Also für PostCode mag es so korrekt sein. Aber das liegt an einem vermutlich reduzierten Wertebereich. Für int Werte ist dies so nicht korrekt.

Da wäre es wichtig, wirklich zu vergleichen oder z.B. Integer.compare zu verwenden (So dies erlaubt ist).

Und wenn Du Strings vergleichen willst, dann bietet es sich natürlich an, die compare Methode zu nutzen. String implementiert Compareable<String> und hat daher eine String.compareTo Methode.
 

Xalo

Mitglied
Also könnte ich dann theoretisch so machen:
Comparator<City> compareString = (a,b) -> a.getName().compareTo(b.getName());
cities.sort(compare);

Danke für deine Antwort
 

Jw456

Top Contributor
ja aber das ist falsch
Java:
//cities.sort(compare); // falsch
cities.sort(compareString);
 

mustBe

Mitglied
Moin, ich bin mir nicht ganz sicher aber wahrscheinlich ist das so gemeint:

Java:
import java.util.*;

class HelloWorld {
    private static Comparator < City > byCityDesc = (a, b) - > {
        return b.name.compareTo(a.name);
    };

    public static void main(String[] args) {
        ArrayList < City > cities = new ArrayList(List.of(new City("DD", 1108), new City("HH", 20099)));
        Collections.sort(cities, byCityDesc);
        System.out.println(cities);
    }
}

class City {
    public String name;
    public int postCode;
    public City(String name, int postCode) {
        this.name = name;
        this.postCode = postCode;
    }
    public String toString() {
        return "(" + postCode + " " + name + ")";
    }
}

Es ginge auch " return -a.name.compareTo(b.name);".

Oder sollt ihr Comparator chaining machen?

Ich hoffe ich konnte nützlich sein. =)
 

mihe7

Top Contributor
Vorausgesetzt, City hat eine Methode name(), beschreibt Comparator.comparing(City::name).reversed() sehr schön, was Sache ist.

Nachtrag: lese gerade, dass der TE einen Lambaausdruck haben will, dementsprechend wäre City::name natürlich durch city -> city.name zu ersetzen.
 

mustBe

Mitglied
Das hast Du völlig recht: er soll den Comparator als (und nicht mit) Lambda-Ausdruck schreiben. Damit wäre Deine Version korrekt, denn Comparator.compring ist nun mal kein Lambda-Ausdruck.
Och... Ob nun einer als oder mit Lambda verstarb, nehme ich nicht so genau, Schnuppen bleibt Schnuppen 😁 😁 ... Soory, diese Metapher war unangebracht.

Viel wichtiger ist doch, dass morgen der heißeste Tag jemals werden könnte... Und wir sorgen uns um keine Heizung im Winter 💁‍♂️ Als hätten wir wegen des Klimawandels keine wichtigeren Sorgen 💁‍♂️

Dem Klima ist es egal, ob uns warm oder kalt ist, deshalb sollte alles lahmlegen nun oberste Priorität haben... 😉
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
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
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 5
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
F Arrays.sort( ) Problem Java Basics - Anfänger-Themen 14
J Liste von Integers mit Selection Sort sortieren Java Basics - Anfänger-Themen 3
B Selection sort Java Basics - Anfänger-Themen 33
E Selection Sort für beliebige Objekte Java Basics - Anfänger-Themen 24

Ähnliche Java Themen

Neue Themen


Oben