What is BiPredicate?
BiPredicate is same as Predicate, but it accepts two arguments. BiPredicate is Functional interface which accepts two arguments and return boolean value.
BiPredicate contains following methods :
- test() : abstarct method
- and() : default method
- or() : default method
- negate() : default method
So lets see examples of BiPredciate
Example 1 : Check even number using BiPredicate
import java.util.function.BiPredicate;
public class BiPredicateDemo {
public static void main(String[] args) {
BiPredicate<Integer, Integer> isEven = (number1, number2) -> {
return (number1 + number2) % 2 == 0;
};
System.out.println(isEven.test(5, 6));
System.out.println(isEven.test(5, 5));
}
}Output :
false
true
and() method :
and() predicate retruns true when both predicate conditions becomes true. Lets see example of and() method.
Example 2 : BiPredicate and() method
import java.util.function.BiPredicate;
public class BiPredicateDemo {
public static void main(String[] args) {
BiPredicate<String, String> biPredicate1 = (str1, str2) ->
str1.length() == str2.length();
BiPredicate<String, String> biPredicate2 = (str1, str2) ->
str1.equals(str2);
System.out.println(biPredicate1.and(biPredicate2).test("Programming", "programming"));
System.out.println(biPredicate1.and(biPredicate2).test("Java", "Java"));
}
}Output :
false
true
In first result, string length is same but it is not equals so it is returning false. In second result, both string are same length and equals so we are getting true as result.
or() method :
or() predicate returns true when one of predicates becomes true.
Example 3 : BiPredicate or() method
import java.util.function.BiPredicate;
public class BiPredicateDemo {
public static void main(String[] args) {
BiPredicate<String, String> biPredicate1 = (str1, str2) ->
str1.length() == str2.length();
BiPredicate<String, String> biPredicate2 = (str1, str2) ->
str1.equals(str2);
System.out.println(biPredicate1.or(biPredicate2).test("Programming", "programming"));
System.out.println(biPredicate1.or(biPredicate2).test("Java", "Java"));
}
}output :
true
true
Example 4 : BiPredicate with Objects
Person.java
public class Person {
String name;
Integer age;
public Person(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
BiPredicateDemo.java
import java.util.Arrays;
import java.util.List;
import java.util.function.BiPredicate;
public class BiPredicateDemo {
public static void main(String[] args) {
List<Person> personList = Arrays.asList(
new Person("Person 1" , 22),
new Person("Person 2" , 40),
new Person("Person 3" , 18),
new Person("Person 4" , 34),
new Person("Person 5" , 25));
BiPredicate<Person, Integer> biPredicate1 = (person1, age) -> {
return (person1.getAge() > age);
};
for (Person person : personList) {
System.out.println(person.getName() + " = " + biPredicate1.test(person, 25));
}
}
}Output :
Person 1 = false
Person 2 = true
Person 3 = false
Person 4 = true
Person 5 = false
Happy Coding.
Other java 8 articles :
Comments
Post a Comment