プログラミング 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+Thymeleaf】HTMLの更新をビルドせずに反映させる方法

概要 Spring + Thymeleafの構成において、ビルド無しでHTMLの変更を反映する方法です。 前提 以下の構成で確認したものになります。 ・SpringBoot 2.6.4 ・Thymel …

【Laravel】SQLの確認はenableQueryLogを使う

SQLのデバッグのために、SQLとバインドされた値を確認したいことがあります。 その時に使える方法として、よく提示されるのは以下の2つです。 1.enableQueryLogメソッドとgetQuery …

【SpringBoot入門】#6~ 登録機能の実装

概要 画面から送信されたデータをDBに登録する機能を実装します。 入力データはバリデーションによってチェックされることとします。 サーバサイドは以下のように各層で処理分けされます。 <Contorol …

【Java入門】クラスの継承、オーバーライド

概要 クラスの継承とは、継承元(親)のフィールド(値)、メソッド(機能)を継承先(子)に引き継がせることです。 継承先(子)では、追加のフィールド(値)、メソッド(機能)を持つことができます。 つまり …

【Java】モジュールシステムの概要と実装例

概要 Javaのモジュールシステムについて、概念的なイメージと実際のコード例で理解を深めるための記事です。 読者はJava Silverの資格勉強中の方やJava入門者を想定しています。 内容は以下の …

SpringFramworkの良書

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

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