プログラミング Java

【Java入門】Functionの使い方まとめ

投稿日:2021年6月2日 更新日:

概要

Function <T, R>
apply(T)を関数メソッドに持つ関数型インタフェースです。
1つの引数を受け取って結果(R)を返します。
 

基本的な使い方

Functionインターフェースの第1の型(T)にはapplyメソッドの引数になる型を指定します。
第2の型(R)には処理結果の戻り値の型を指定します。
以下では、StringをIntegerに変換した結果を返しています。

 

各メソッドの使い方

andThen(Function after)

まず自身の関数を適用してから、関数afterを適用した結果を返します。

compose(Function before)

まず関数beforeを適用してから、自身を適用した結果を返します。

identity()

常に入力引数を返す関数を返します。
これはstaticなメソッドです。

 

Functionの特殊化された他のインターフェース

引数2つを持つように特殊化されたインターフェース

BiFunction<T,U,R>

2つの引数を受け取って結果を生成して返します。
T – 関数の第1引数の型
U – 関数の第2引数の型
R – 関数の結果の型

ToIntBiFunction<T,U,R>

2つの引数を受け取ってint値の結果を返す関数を生成します。
T – 関数の第1引数の型
U – 関数の第2引数の型
applyAsInt(Object, Object)をメソッドとして持ちます。

ToDoubleBiFunction<T,U,R>

2つの引数を受け取ってdouble値の結果を返す関数を生成します。
T – 関数の第1引数の型
U – 関数の第2引数の型
applyAsDouble(Object, Object)メソッドの持ちます。
※基本的な操作はToIntBiFunctionと同等なのでソースコードは割愛。

ToLongBiFunction<T,U,R>

2つの引数を受け取ってlong値の結果を返す関数を生成します。
T – 関数の第1引数の型
U – 関数の第2引数の型
applyAsLong(Object, Object)をメソッドとして持ちます。
※基本的な操作はToIntBiFunctionと同等なのでソースコードは割愛。

プリミティブ特殊型

プリミティブ型を引数にしてR型の結果を返します。

IntFunction<R>

intを引数にしてR型の結果を返します。

DoubleFunction<R>

doubleを引数にしてR型の結果を返します。
※基本的な操作はIntFunctionと同等なのでソースコードは割愛。

LongFunction<R>

longを引数にしてR型の結果を返します。
※基本的な操作はIntFunctionと同等なのでソースコードは割愛。

プリミティブ特殊型(変換)

関数名の左辺を引数として、右辺の値に変換した結果を返します。

IntToDoubleFunction
int値を引数として、double値を返します。
applyAsDouble(int)をメソッドとして持ちます。

 
他にも以下のインターフェースが用意されており、
基本的な使い方は同じです。

  • IntToLongFunction
  • DoubleToIntFunction
  • DoubleToLongFunction
  • LongToIntFunction
  • LongToDoubleFunction

プリミティブ特殊型(生成)

プリミティブ値の結果を生成した結果を返します。

ToIntFunction<T>
int値の結果を生成した結果を返します。
T – 関数の入力の型
applyAsInt(Object)をメソッドとして持ちます。

他にも以下のインターフェースが用意されており、
基本的な使い方は同じです。

  • ToDoubleFunction
  • ToLongFunction

まとめ

  • Functionは引数を1つ持ち、処理結果を返す関数型インターフェースである。
  • 特殊型として、2つの引数を持つBi、プリミティブ型を使用するインターフェース、プリミティブ型を変換するインターフェース、プリミティブ型を生成するインターフェースがある。

参考情報

インタフェースFunction<T,R>
パッケージjava.util.function

その他の関数型インターフェース

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【Java入門】Predicateの使い方まとめ

概要 Predicateはtestメソッド持つ関数型インターフェースです。 引数を1つ受け取り、booleanを返します。   基本的な使い方 test(T t)には、ジェネリクスに指定する型を引数と …

【Spring】JSの変更を反映させる方法

Spring Bootのおいて、JavaScriptの変更を反映させる方法です。   設定 application.properties application.propertiesに、以下 …

idea, intellij, jet, brain, jetbrain

【IntelliJ Idea】Spring Boot DevToolsの自動ビルドを有効にする設定

IntelliJ Ideaの場合、自動ビルドの設定を有効にする必要があります。 前提 Gradle、またはMavenプロジェクトで作成しているはずなので、 dependenciesにSpring Bo …

Springでバリデーションがimportされていないときの対処法

状況 SpringF/Wでバリデーションを実装したいが、@NotNullや@Minといったアノテーションが使えない。 @NotNullを使おうとすると、import com.sun.istack.No …

AWSへWebアプリケーション(Java)をデプロイする方法(書籍紹介)

対象者 ・個人開発者 ・ポートフォリオ作成者 手順 こちらの書籍を参考に私自身がAWSにデプロイした手順です。 書籍では図解もあってわかり易く解説されているので、ここでは流れを簡潔に説明します。 すで …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。