プログラミング 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


関連記事

【Spring】バリデーション時に、入力値を保持する方法

登録画面で「登録」ボタンを押した後、 バリデーションで引っ掛かってエラーになっても 入力内容を画面に保持して置く方法についてです。 テンプレートエンジンは、Tymeleafを使用しています。 方法とし …

【Java】ディレクトリまたはファイルのみを再帰的に削除する

概要 再帰的にファイルやディレクトリを削除したいことがあります。 そんなときにサラッと書けるコードです。 環境 Java8以降 実装 指定したディレクトリを含めて全て削除 指定したディレクトリを含めて …

【SpringBoot入門】#1~ 開発環境を準備しよう(IDE)

想定読者 SpringBootを始めて学ぶ方   IDE(Eclipse) IDEにはEclipse以外にもNetBeansやIntelliJがあります。 好みによりますので使いやすいものを …

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

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

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

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

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

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

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