[JAVA] Punkt 42: Bevorzugen Sie Lambdas gegenüber anonymen Klassen

42. Der Lambda-Ausdruck sollte aus einer anonymen Klasse ausgewählt werden

package tryAny.effectiveJava;

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class AnonymouseVsLambda {
    public static void main(String[] args) {
        List<String> words1 = Arrays.asList("apple", "pen", "pineapple");
        //Schreiben Sie in einer anonymen Klasse.
        Collections.sort(words1, new Comparator<String>() {
            public int compare(String s1, String s2) {
                return Integer.compare(s1.length(), s2.length());
            }
        });
        System.out.println(words1);

        //Wenn der Typ auf Raw gesetzt ist, tritt ein Kompilierungsfehler auf.
        List<String> words2 = Arrays.asList("banana", "grape", "melon");
        //Schreiben Sie im Lambda-Stil.
        Collections.sort(words2, (s1, s2) -> Integer.compare(s1.length(), s2.length()));
        System.out.println(words2);
    }
}

Recommended Posts

Punkt 42: Bevorzugen Sie Lambdas gegenüber anonymen Klassen
Punkt 43: Bevorzugen Sie Methodenverweise auf Lambdas
Punkt 23: Bevorzugen Sie Klassenhierarchien gegenüber markierten Klassen
Punkt 28: Listen Arrays vorziehen
Punkt 65: Schnittstellen der Reflexion vorziehen
Punkt 39: Bevorzugen Sie Anmerkungen gegenüber Namensmustern
Punkt 85: Bevorzugen Sie Alternativen zur Java-Serialisierung
Punkt 58: Bevorzugen Sie für jede Schleife herkömmliche Schleifen
Punkt 61: Bevorzugen Sie primitive Typen gegenüber primitiven Boxen
Punkt 81: Bevorzugen Sie Parallelitätsdienstprogramme, um zu warten und zu benachrichtigen
Punkt 80: Ziehen Sie Executoren, Aufgaben und Streams Threads vor
Punkt 89: Für die Steuerung bevorzugen Sie Aufzählungstypen gegenüber readResolve
Punkt 47: Sammlung als Rückgabetyp dem Stream vorziehen
[Java] Über anonyme Klassen