Java Silver合格への道 ~Predicateインタフェース~
スポンサーリンク
こんにちは。たろすです。
今回はPredicateインタフェースについてです。
Function、Consumer、SupplierはJava Silverの試験範囲に含まれていないので扱いません。
関数型インタフェースについて
Predicateインタフェースはあらかじめ用意された関数型インタフェースの一つです。
関数型インタフェースについては以下の記事で説明しています。
使い方
boolean test(T t)
test()は引数を受け取ってboolean型を返すメソッドです。
import java.util.function.Predicate; public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Predicate<String> p = str -> str.equals("a"); if (p.test("a")) { System.out.println("YES"); } else { System.out.println("NO"); } } }
default Predicate and(Predicate other)
二つのPredicate
import java.util.function.Predicate; public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Predicate<String> p1 = str -> str.contains("a"); Predicate<String> p2 = str -> str.contains("b"); Predicate<String> p = p1.and(p2); if (p.test("abc")) { System.out.println("YES"); } else { System.out.println("NO"); } } }
default Predicate negate()
Predicate
import java.util.function.Predicate; public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Predicate<String> p = str -> str.equals("a"); Predicate<String> _p = p.negate(); if (_p.test("a")) { System.out.println("YES"); } else { System.out.println("NO"); } } }
default Predicate or(Predicate other)
二つのPredicateの論理和です。
import java.util.function.Predicate; public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Predicate<String> p1 = str -> str.contains("a"); Predicate<String> p2 = str -> str.contains("b"); Predicate<String> p = p1.or(p2); if (p.test("az")) { System.out.println("YES"); } else { System.out.println("NO"); } } }
static Predicate isEqual(Object targetRef)
二つの引数が等しいかどうかを判定するメソッドです。
import java.util.function.Predicate; public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Predicate<String> p = Predicate.isEqual("a"); if (p.test("a")) { System.out.println("YES"); } else { System.out.println("NO"); } } }
おわりに
今回はPredicateインタフェースについて説明しました。
難しいですが量は少ないのでしっかり覚えておきましょう。