プログラミング Java

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

投稿日:

概要

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


関連記事

【JdbcTemplate】Queryの書き方(更新系)

  前提 以下のテーブル(users)を持ち、格納するのはUserクラスという想定で説明していきます。 usersテーブル

【SpringBoot入門】#3~ Index画面の作成

このチュートリアルでは、簡易な書籍管理システムを作っていきます。 まず最初にIndex画面を作成していきます。 HTML作成 以下の配下にindex.htmlを作成します。 配置先:プロジェクト(ここ …

【JUnit5】基本的なAssertionまとめ

概要 JUnit5における基本的なAssertionをまとめました。 検証方法 等価性 値が等価であるかを検証するメソッドです。 以下はorg.junit.jupiter.api.Assertions …

【Java】ArrayListの使い方まとめ

概要 ArrayListはOracleの公式ページでも明記しているクラスです。 Java SE 11 Programmer I (1Z0-815-JPN) 試験 インタフェースによる抽象化 インタフェ …

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

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

記事を探す

SpringFramworkの良書

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

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