プログラミング Java

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

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

概要

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などは黒本を見た限り出てこなかったので、おそらくそこまで突っ込んだ試験は出てこないと思われます。
 

まとめ

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

 

参考情報

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

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

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

ランキング評価する

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

執筆者:


comment

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

CAPTCHA


関連記事

【Bootstrap】ログイン画面をデザインしよう!

概要 【SpringSecurity】#3~ 独自のログイン画面でシンプルな独自のログイン画面を実装しました。 これに、Bootstrapでデザインを施していきます。 Bootstrapのサンプルを基 …

【SpringSecurity】#1~ ログイン画面の実装(認証)

概要 SpringSecurityを導入してユーザ認証機能を実現します。 まずはログイン認証機能が使えるようになることを目標にしていますので、 本記事で解説する構成は最小限にとどめています。   準備 …

【Java入門】起動パラメータを付けて起動してみよう!

概要 Javaプログラムを起動する際に、何らかのパラメータ(値)を付けて起動することができます。 今はこのメリットがわからないと思いますが、そういうことができるんだなというレベルで理解しておいて頂けれ …

フロントエンジニアとバックエンドエンジニアのどちらになるべきか?

対象読者 ・これからWebエンジニアを目指す人 ・フロントエンジニアとバックエンドエンジニアの違いを知らない人   フロントエンジニアかバックエンドエンジニアか? ・役割から考える フロント …

junit, テスト, junit5

【JUnit5】基本的なAssertionまとめ

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

SpringFramworkの良書

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

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