Java 関数型インターフェースのサンプル(Predicate)

Javaの関数型インターフェースのPredicateのサンプルです。

目次

説明 Predicateインターフェース
サンプル クラスにPredicateインターフェースを実装する
  匿名クラスでPredicateインターフェースを使用する

Predicateインターフェース

インターフェース public interface Predicate<T>
メソッド boolean test(T t)

関数型インターフェースのPredicateのサンプルです。

package test1;

import java.util.function.Predicate;

public class Test1 {
	public static void main(String[] args) {
		
		Predicate <String> check1 = a -> a.isEmpty(); //文字列は空文字か
		
		System.out.println(check1.test("3")); //false
		
		System.out.println(check1.test("")); //true
	}
}

3行目は、java.util.functionパッケージのPredicateインターフェースをimportしています。

8行目は、Predicateインターフェースを使用したラムダ式です。
Predicate <String>の
Stringは、Predicate<T>のTでメソッドの引数の型です。
isEmptyメソッドは、文字列は空文字か判定します。

10,12行目は、testメソッドでStringの引数があり、戻り値はbooleanです。

 

クラスにPredicateインターフェースを実装する

package test1;

import java.util.function.Predicate;

public class Test1 {
	public static void main(String[] args) {

		Check1 check1 = new Check1();
		boolean b1 = check1.test(123);
		System.out.println(b1); // true
	}
}
class Check1 implements Predicate<Integer> {
	@Override
	public boolean test(Integer c1) {
		boolean a1 = false;
		if (c1 == 123) {
			a1 = true;
		}
		return a1;
	}
}

2行目は、java.util.function.Predicateインターフェースをimportしています。
13行目は、Predicateインターフェースを実装しています。
Integerは引数の型です。
9行目は、testメソッドです。引数と戻り値があります。戻り値はbooleanです。

 

匿名クラスでPredicateインターフェースを使用する

package test1;
import java.util.function.Predicate;

public class Test1 {
	public static void main(String[] args) {
		
		int c1 = 1;
		boolean b1  = new Predicate<Integer>() {
			@Override
		    public  boolean  test(Integer c1 ) {
				boolean a1 = false;
				if (c1 == 1 ){
					a1 = true;
				}
				return a1;
		    }
		}.test(c1);
		
		System.out.println(b1); //true
	}
}

6行目は、java.util.PredicateパッケージのPredicateインターフェースをimportしています。
13行目は、匿名クラスです。クラス名はありません。
19行目は、applyメソッドです。引数と戻り値があります。
19行目は、数値が昇順にソートされて表示されます。

関連の記事

Java 関数型インターフェースのサンプル(Consumer)
Java 関数型インターフェースのサンプル(Supplier)
Java 関数型インターフェースのサンプル(Function)

△上に戻る