Zusammenfassung der primitiven Java-Spezialisierung

Vorwort

Wir haben die funktionale Schnittstelle von Java SE 8 und die primitive Spezialisierung von Stream zusammengefasst. Der Zweck ist die Vorbereitung auf die Java Gold-Prüfung.

Was ist primitive Spezialisierung?

In Java können keine Grundelemente angegeben werden, um Argumente wie T, R von R (T t) der Funktion \ <T, R> anzuwenden. In der Funktionsschnittstelle und im Stream werden einige Klassen einzeln definiert, sodass int, long und double wie Generika betrieben werden können (ohne die Wrapper-Klasse einzuschränken). Dies wird als Typ mit primitiver Spezialisierung bezeichnet. Wenn Sie sich nur an int erinnern, gibt es keinen Unterschied zwischen long und double.

Organisieren Sie funktionale Schnittstellen

[java.util.function] 1 Allfunktionsschnittstelle

Grundklassenname Spezialisierung auf int Spezialisierung zu lang Spezialisierung zu verdoppeln Grundlegender Methodenname
Function<T,R> IntFunction<R> LongFunction<R> DoubleFunction<R> apply()
Function<T,R> IntToDoubleFunction LongToDoubleFunction DoubleToIntFunction apply()
Function<T,R> IntToLongFunction LongToIntFunction DoubleToLongFunction apply()
Function<T,R> ToIntFunction<T> ToLongFunction<T> ToDoubleFunction<T> apply()
UnaryOperator<T> IntUnaryOperator LongUnaryOperator DoubleUnaryOperator apply()
BiFunction<T,U,R> ToIntBiFunction<T,U> ToLongBiFunction<T,U> ToDoubleBiFunction<T,U> apply()
BinaryOperator<T> IntBinaryOperator LongBinaryOperator DoubleBinaryOperator apply()
Predicate<T> IntPredicate LongPredicate DoublePredicate test()
BiPredicate<T,U> - - - test()
Consumer<T> IntConsumer LongConsumer DoubleConsumer accept()
BiConsumer<T,U> ObjIntConsumer<T> ObjLongConsumer<T> ObjDoubleConsumer<T> accept()
Supplier<T> IntSupplier LongSupplier DoubleSupplier get()
BooleanSupplier - - - getAsBoolean()

Punkt

--Funktionsprimitivspezialisierung entspricht jedem der folgenden Muster.

[java.util.stream] Organisiere primitive Spezialisierungen in 0

Art

Die folgenden 3 Klassen sind primitive Spezialtypen aus Stream \ .

Hier nennen wir es einen primitiven spezialisierten Stream.

Primitive spezialisierte Stream-spezifische Beendigungsoperationen

--sum (): Nimm die Summe. --avage (): Nimm den arithmetischen Durchschnitt. Der Rückgabewert ist Optional Double. --max (): Da die Reihenfolge selbsterklärend ist, wird im Gegensatz zu Stream \ .max (Comparator) kein Argument verwendet. --min (): Da die Reihenfolge selbsterklärend ist, wird im Gegensatz zu Stream \ .min (Comparator) kein Argument verwendet.

Gegenseitige Konvertierung zwischen Stream \ und primitiven spezialisierten Streams

Aus einem primitiven Spezialisierungsstrom

mapToXxx () -Methode

this Rückgabewert Methodenname Streit
IntStream LongStream mapToLong *1 IntToLongFunction
IntStream DoubleStream mapToDouble *1 IntToDoubleFunction
IntStream Stream<T> mapToObj *2 IntFunction<? extends T>
LongStream IntStream mapToInt LongToIntFunction
LongStream DoubleStream mapToDouble *1 LongToDoubleFunction
LongStream Stream<T> mapToObj *2 LongFunction<? extends T>
DoubleStream IntStream mapToInt DoubleToIntFunction
DoubleStream LongStream mapToLong DoubleToLongFunction
DoubleStream Stream<T> mapToObj *2 DoubleFunction<? extends T>

* 1 Mit der Methode asXxx () kann ein einfacher Upcast durchgeführt werden.

this Rückgabewert Methodenname Streit
IntStream DoubleStream asDoubleStream -
IntStream LongStream asLongStream -
LongStream DoubleStream asDoubleStream -

* 2 Einfaches Boxen kann mit der boxed () -Methode durchgeführt werden.

this Rückgabewert Methodenname Streit
IntStream Stream<Integer> boxed -
LongStream Stream<Long> boxed -
DoubleStream Stream<Double> boxed -

Von Stream \ zu einem primitiven spezialisierten Stream

mapToXxx () -Methode

this Rückgabewert Methodenname Streit
Stream<T> IntStream() mapToInt ToIntFunction<? super T>
Stream<T> LongStream() mapToLong ToLongFunction<? super T>
Stream<T> DoubleStream() mapToDouble ToDoubleFunction<? super T>

flatMapToXxx () -Methode

Eine Kombination aus Abflachung und primitiver Spezialisierung. ** Derjenige, der an der Prüfung teilzunehmen scheint **.

this Rückgabewert Methodenname Streit
Stream<T> IntStream() flatMapToInt Function<? super T,? extends IntStream>
Stream<T> LongStream() flatMapToLong Function<? super T,? extends LongStream>
Stream<T> DoubleStream() flatMapToDouble Function<? super T,? extends DoubleStream>

Bitte lassen Sie mich wissen, wenn Sie etwas hinzufügen möchten.

Recommended Posts

Zusammenfassung der primitiven Java-Spezialisierung
Zusammenfassung des Java-Wissens
Java Generics Zusammenfassung
Java-bezogene Zusammenfassung
Zusammenfassung des Java 11-Dokuments
Zusammenfassung der neuen Funktionen von Java 12
[Zusammenfassung] Zum Beispiel die Vorbereitung der Java-Umgebung
effektive Java 3. Zusammenfassung
Zusammenfassung der neuen Funktionen von Java 13
Java statisch [Persönliche Zusammenfassung]
Thread sichere Zusammenfassung ~ Java ~
Zusammenfassung des Java-Entwicklungslinks
Persönliche Zusammenfassung über Java
Zusammenfassung der neuen Funktionen von Java 10
Zusammenfassung der regulären Ausdrücke von Java
Zusammenfassung der neuen Funktionen von Java 14
Zusammenfassung der Java-Unterstützung 2018
Zusammenfassung des Java-Entwurfsmusters
Java-Zusammenfassung für reservierte Wörter
Grobe Zusammenfassung des Java8-Streams
Was ist Java Assertion? Zusammenfassung.
[Java11] Stream-Zusammenfassung - Vorteile von Stream -
Progate Java (Anfänger) Review & Zusammenfassung
[Java] Zusammenfassung der regulären Ausdrücke
Ich habe Java-Primitivtypen untersucht
[Java] Zusammenfassung der Operatoren (Operator)
Java8-Stream, Zusammenfassung des Lambda-Ausdrucks
Objektorientierte Zusammenfassung von Anfängern (Java)
Zusammenfassung der Grundlagen der Java-Sprache
Java-Tipps - Zusammenfassung der Federausführung
Zusammenfassung der Java Math Klasse
[Java11] Stream Usage Summary -Basics-
[Java] Zusammenfassung der Steuerungssyntax
Zusammenfassung der Java-Fehlerverarbeitung
[Java] Zusammenfassung der Entwurfsmuster
[Java] Zusammenfassung der mathematischen Operationen
Berücksichtigung des Java Persistence Framework 2017 (Zusammenfassung) -1
[Für Anfänger] Zusammenfassung des Java-Konstruktors
Java-Veröffentlichungsdatum und EOL-Zusammenfassung
Java primitive Typen, Referenztypen, unveränderlich, veränderlich
Zusammenfassung
AtCoder 400 Punkte Algorithmus Zusammenfassung (Java Edition)
Java
Informationen zu primitiven Java-Typen und Referenztypen
Java "Pass by Reference" Problemzusammenfassung
Java EE 8 (Jakarta EE 8) Zusammenfassung der neuen Funktionen
Java
Zusammenfassung der objektorientierten Programmierung mit Java
[Java Silver] Zusammenfassung der Zugriffsmodifikatorpunkte
Zusammenfassung der internen Rookie-Lernsitzung [Java]
So erstellen Sie eine Java-Kalenderzusammenfassung
[java] Zusammenfassung des Umgangs mit char
Zusammenfassung anderer Änderungen als JEP von Java10
[Java] Persönliche Zusammenfassung der bedingten Anweisungen (grundlegend)
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
Java Zusammenfassung der häufig gesuchten Typkonvertierungen
[Java] Instanzmethode, Instanzfeld, Klassenmethode, Klassenfeld, Konstruktorzusammenfassung
Zusammenfassung von Java Math.random und Import (Kalender)