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

当ページのリンクには広告が含まれています。
目次

概要

Predicateはtestメソッド持つ関数型インターフェースです。
引数を1つ受け取り、booleanを返します。

基本的な使い方

test(T t)には、ジェネリクスに指定する型を引数として与えます。
ラムダ式にはbooleanを返すための評価式を記述します。
以下では、正数をtrueとして返しています。

その他のメソッド

Predicateには3つのdefaultメソッドと1つのstaticメソッドがあります。

and

defaultメソッドの1つです。
他のPredicateとの論理積の結果を返します。
以下では、10以上かつ20以下の結果を評価しています。

or

defaultメソッドの1つです。
他のPredicateとの論理和の結果を返します。
以下では、40以上または30以下の結果を評価しています。

nagete

defaultメソッドの1つです。
Predicateの評価を否定した結果を返します。
以下では、10に一致する結果を否定しています。

isEauls

staticメソッドです。
Objects.equals(Object, Object)で評価します。
お互いのオブジェクトが等しい場合のみtrueを返します。
もし引数がnullの場合、nullが評価対象であればtrueを返します。

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

BiPredicate

testメソッドが2つの引数を持つように特殊化されたPredicateのインターフェースです。

IntPredicate

testメソッドの引数の型がintに特殊化されたPredicateのインターフェースです。
ジェネリクスの型の指定は不要です。

DoublePredicate

testメソッドの引数の型がdoubleに特殊化されたPredicateのインターフェースです。
ジェネリクスの型の指定は不要です。
※コードはIntPredicateと同様のため割愛

LongPredicate

testメソッドの引数の型がlongに特殊化されたPredicateのインターフェースです。
ジェネリクスの型の指定は不要です。
※コードはIntPredicateと同様のため割愛

Javaの資格試験対策

押さえるべき点は、以下の2点です。
・Predidateはどんな目的を持っている関数型インターフェースか?
⇒概要をご確認ください。
・testメソッドの使い方
⇒基本的な使い方をご確認下さい。

and、or、nagete、isEqualsメソッドや、特殊化されたBiPredidateなどは徹底攻略Java SE 11 Silver問題集[1Z0-815]対応(通称:黒本)を見た限り出てこなかったので、おそらくそこまで突っ込んだ試験は出てこないと思われます。

まとめ

  • Predicateはtestメソッド持つ関数型インターフェースで、引数を1つ受け取ってbooleanを返します。
  • defaultメソッドにand・or・nageteを持ち、論理積・論理和・否定を評価できる。
  • staticメソッドにisEqualsを持ち、Object.equals(Object, Object)の比較を行える。
  • 他にも特殊化されたインターフェースが利用できる。

参考情報

インタフェースPredicate
パッケージjava.util.function

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

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次