To implement predicate functions in java, oracle people introduced predicate interface in 1.8 version (i.e., Predicate
Predicate interface present in java.util.function package.
It’s a functional interface and it contain only one method i.e., test().
Ex:
interface Predicate<T> { public Boolean test(T t); }
As predicate is a functional interface and hence it can refers lambda expression.
Ex:1
Write a predicate to check whether the given integer is greater than 10 or not.
Ex:
public boolean test(Integer I) { if(I>10) { return true; } else { return false; } } (Integer I) –> { If(I>10) return true; else return false; } I –> (I>10);
Predicate
System.out.println(p.test(100)); true
System.out.println(p.test(7)); false
Program
import java.util.function; class Test { public static void main(String[] args) { predicate<Integer> p = I –> (i>10); System.out.println(p.test(100)); System.out.println(p.test(7)); System.out.println(p.test(true)); //CE } }
# 1 Write a predicate to check the length of given string is greater than 3 or not.
Predicate
System.out.println (p.test(“rvkb”)); true
System.out.println (p.test(“rk”)); false
# 2 Write a predicate to check whether the given collection is empty or not.
Predicatep = c –> c.isEmpty();
Predicate joining
It’s possible to join predicates into a single predicate by using the following methods.
and() or() negate()These are exactly same as logical AND, OR complement operators. Ex:import java.util.function.*; class test { public static void main(String[] args) { int[] x = {0, 5, 10,15, 20, 25, 30}; predicate<integer> p1 = i->i>10; predicate<integer> p2 = I -> i%2==0; System.out.println(“The Number Greater Than 10:”); m1(p1, x); System.out.println(“The Even Numbers Are:”); m1(p2, x); System.out.println(“The Numbers Not Greater Than 10:”); m1(p1.negate(), x); System.out.println(“The Numbers Greater Than 10 And Even Are:”); m1(p1.and(p2), x); System.out.println(“The Numbers Greater Than 10 OR Even:”); m1(p1.or(p2), x); } public static void m1(predicate<integer>p, int[] x) { for(int x1:x) { if(p.test(x1)) System.out.println(x1); } } }
No comments:
Post a Comment