Java-Standardfunktionstyp-Schnittstelle

Eine funktionale Schnittstelle ist eine Schnittstelle, die nur eine abstrakte Methode hat und als Zuweisungsziel für Lambda-Ausdrücke und Methodenreferenzen verwendet wird. Ich habe versucht, die Standardfunktionsschnittstelle zusammenzufassen

Standard-Funktionsschnittstelle

Als Standardschnittstelle für Funktionstypen werden typische Methodentypen im Paket java.util.function definiert.

Grundlegende Standardfunktionsschnittstelle

Schnittstelle Methode Erläuterung
Function <T, R> R apply (T t) Nimmt ein Argument vom Typ T und gibt ein Ergebnis vom Typ R zurück
Consumer <T> void accept (T t) Empfängt Argumente vom Typ T und gibt keine Ergebnisse zurück
Predicate <T> boolean test(T t) Nimmt ein Argument vom Typ T und gibt das Ergebnis des booleschen Werts zurück
Supplier <T> T get() Gibt ein Ergebnis vom Typ T ohne Argumente zurück

Beispielcode

Sample.java


        // Function<T, R>
        //Beispiel: Gibt die Zeichenfolgenlänge des Arguments zurück
        Function<String, Integer> function = String::length;
        System.out.println(function.apply("12345")); // 5

        // Consumer<T>
        //Beispiel: Geben Sie die Zeichenfolgenlänge des Arguments aus
        Consumer<String> consumer = str -> System.out.println(str.length());
        consumer.accept("12345"); // 5

        // Predicate<T>
        //Beispiel: In der Argumentzeichenfolge"foo"Beurteilung, ob enthalten ist
        Predicate<String> predicate = str -> Objects.nonNull(str) && str.contains("foo");
        System.out.println(predicate.test("foo bar")); // true

        // Supplier<T>
        //Beispiel:"Sample"Gib es zurück
        Supplier<String> supplier = () -> "Sample";
        System.out.println(supplier.get()); // Sample

Funktionszusammensetzung

Sie können Standardfunktionsschnittstellen kombinieren, um neue Funktionsschnittstellen zu erstellen Synthese mit "compose", "andThen" (Der Unterschied zwischen "compose" und "andThen" ist die Reihenfolge der Komposition) Das Prädikatsystem kann mit "und", "oder", "negieren" synthetisiert werden

Beispielcode

Sample.java


        //Funktionszusammensetzung der Funktion
        Function<String, Integer> function1 = String::length;
        Function<Integer, Integer> function2 = i -> i * 100;
        //Bei Verwendung von Compose
        Function<String, Integer> newFunction1 = function2.compose(function1);
        //Bei Verwendung von andThen
        Function<String, Integer> newFunction2 = function1.andThen(function2);
        System.out.println(newFunction1.apply("12345")); // 500
        System.out.println(newFunction2.apply("12345")); // 500

        //Prädikatfunktionszusammensetzung
        Predicate<Integer> predicate1 = i -> i % 2 == 0; //Urteil, ob es gerade ist
        Predicate<Integer> predicate2 = i -> i >= 100; //Beurteilung, ob es 100 oder mehr ist
        //Bestimmen Sie, ob es gerade ist und 100 oder mehr
        Predicate<Integer> newPredicate1 = predicate1.and(predicate2);
        //Bestimmen Sie, ob es ungerade und kleiner als 100 ist(negate()Ist eine logische Ablehnung)
        Predicate<Integer> newPredicate2 = predicate1.negate().and(predicate2.negate());
        System.out.println(newPredicate1.test(100)); // true
        System.out.println(newPredicate2.test(99)); // true

Recommended Posts

Java-Standardfunktionstyp-Schnittstelle
[Java] Funktionsschnittstelle
Informationen zur Java-Funktionsschnittstelle
[Java] Funktionsschnittstelle / Lambda-Ausdruck
Java (Schnittstelle)
[Java] -Schnittstelle
Über die Java-Schnittstelle
Einführung der Funktionsschnittstelle
Java Standard Logger
[Java] -Schnittstelle
Über Schnittstelle, Java-Schnittstelle
Aufrufbare Schnittstelle in Java
Ein Überprüfungshinweis zur Funktionsoberfläche
Java-Lernnotiz (Schnittstelle)
Zusammenfassung der erweiterten Vererbung, Schnittstelle -java
Java-Memo-Teilzeichenfolge (Standardklasse)
Vererbung der JAVA-Lernverlaufsschnittstelle
Länge des Java-Memos (Standardklasse)
Probieren Sie den Funktionstyp in Java aus! ①
Überprüfen Sie die private Methode der Java9-Schnittstelle
Lesen Sie die Standardeingabe in Java
Beispiel für eine Java-Standardprotokollausgabe
[Java] Liste der betriebssystemabhängigen Standardbibliotheken
Implementieren Sie eine funktionsähnliche schnelle Sortierung in Java
Greifen Sie mit Java auf die Netzwerkschnittstelle zu
Java und primäre Funktionen - jenseits funktionaler Schnittstellen -
Verwenden Sie Microsoft Graph mit Standard-Java
[Java-Anfänger] Über Abstraktion und Schnittstelle
Schnittstelle
Java Function Programming Exercise Book --zipWith-
Einführung in die funktionale Programmierung (Java, Javascript)
Nachahmung der funktionalen Schnittstelle von Java mit Kotlin
[JAVA] Unterschied zwischen Abstract und Interface
Java
Java, Schnittstelle für Anfänger
Java
Geschichte von paiza.jp [Java Standard Input Solution]
Bedeutung der aus der Java Collection gelernten Schnittstelle
Verstehen Sie die Java-Oberfläche auf Ihre eigene Weise
[Java] Verwenden Sie kryptografische Technologie mit Standardbibliotheken
[Java / Swift] Vergleich von Java-Schnittstelle und Swift-Protokoll
[Java] Färben Sie die Standardausgabe an das Terminal
[Java] Inhalt der Collection-Schnittstelle und der List-Schnittstelle
Java-Ratespiel (Standardprogrammierproblem)