default Predicate<T> and(Predicate<? super T> other)
The and() from the Java 8 Predicate Functional Interface is a default function that returns a composed predicate that represents a short-circuiting logical AND of this predicate and another, i.e. if while evaluating a composed predicate any predicate outcome is false, then the other predicate is not evaluated.
Let's take a look at an example.
We create a Lambda function with a predicate and() that the Person should be,
- a Male, AND
- from USA, AND
- age > 18
package org.code2care.examples;
import java.util.function.Predicate;
class Person {
private String name;
private int age;
private String gender;
private String nationality;
public Person(String name, int age, String gender, String nationality) {
this.name = name;
this.age = age;
this.gender = gender;
this.nationality = nationality;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
public String getNationality() {
return nationality;
}
}
public class PredicateAndExample {
public static void main(String... args) {
Predicate<Person> isMale = person -> "Male".equalsIgnoreCase(person.getGender());
Predicate<Person> isAdult = person -> person.getAge() > 18;
Predicate<Person> isFromUSA = person -> "USA".equalsIgnoreCase(person.getNationality());
Predicate<Person> isEligible = isMale.and(isAdult).and(isFromUSA);
Person person1 = new Person("Andrew", 25, "Male", "USA");
Person person2 = new Person("Ela", 17, "Female", "Canada");
Person person3 = new Person("David", 29, "Male", "England");
System.out.println("Person 1 Eligibility: " + isEligible.test(person1));
System.out.println("Person 2 Eligibility: " + isEligible.test(person2));
System.out.println("Person 3 Eligibility: " + isEligible.test(person3));
}
}
Output:
Provide Feedback For This Article
We take your feedback seriously and use it to improve our content. Thank you for helping us serve you better!
😊 Thanks for your time, your feedback has been registered!
Comments & Discussion
Facing issues? Have questions? Post them here! We're happy to help!