Java 8 Predicate example

Java 8 Predicate
Java 8 predicate is functional interface introduced in java 8.

Predicate definition

Predicate is single argument functional interface which returns true or false. It takes one argument and returns result in form of true or false.

Here is the definition of Predicate interface.

Predicate methods example

test()

This is abstract method of Predicate interface. It evaluates true if predicate matches the input argument.

Here is simple example of test() method which checks if input argument is greater than 100 or not.

Output:

is 200 greater than 100: true

You can pass Predicate as a function argument too.

and()

and() is default method which returns composite predicate that denotes logical AND of this predicate and passed predicate.

Output:

200 lies between 100 and 300: true

We have created two predicates and checked logical AND between predicate1 and predicate2

or()

or() is default method which returns composite predicate that denotes logical OR of this predicate and passed predicate.

Output:

(30 > 100) or (30 < 50) returns: true

We have created two predicates and checked logical or between predicate1 and predicate2

negate()

negate() is default method which returns predicate that denotes logical negation of this predicate.

Output:

30 is less than 100: true

We have created two predicates and checked logical or between predicate1 and predicate2

isEqual()

isEqual() is static method returns predicate that compares if two arguments are equal based on object’s equals() method.

Output:

true
false
  • predicate.test("test1") returns true because it matches with "test1" passed to isEqual method
  • predicate.test("test2") returns false because it does not match with "test1" passed to isEqual method

Please note that above comparison is done on the basis of String’s equals() method.

Filter list using Predicate

Java 8 stream’s filter method takes Predicate as a argument and can be used to filter the list with the help of predicates.
Lets say you have student class as below:

Lets create a function which will be used to filter students based on predicates.

Lets create a main class as below:

When you run above program, you will get below output:

18 are :[Student [id=1, name=Arpit, gender=M, age=19], Student [id=4, name=Martin, gender=M, age=21]]

Female students having age < 18 are :[Student [id=3, name=Mary, gender=F, age=14], Student [id=5, name=Monica, gender=F, age=16]]

That’s all about Java 8 Predicate example


import_contacts

You may also like:

Related Posts

  • Unable to obtain LocalDateTime from TemporalAccessor
    20 February

    [Fixed] Unable to obtain LocalDateTime from TemporalAccessor

    Table of ContentsUnable to obtain LocalDateTime from TemporalAccessor : ReasonUnable to obtain LocalDateTime from TemporalAccessor : FixLocalDate’s parse() method with atStartOfDay()Use LocalDate instead of LocalDateTime In this article, we will see how to fix Unable to obtain LocalDateTime from TemporalAccessor in Java 8. Unable to obtain LocalDateTime from TemporalAccessor : Reason You will generally get […]

  • Java LocalDate to Instant
    17 February

    Convert LocalDate to Instant in Java

    Table of ContentsJava LocalDate to InstantUsing toInstant() wth ZoneIdUsing toInstant() with ZoneOffset In this article, we will see how to convert LocalDate to Instant in Java. Java LocalDate to Instant Instant class provides an instantaneous point in time. When you want to convert LocalDate to Instant, you need to provide time zone. Using toInstant() wth […]

  • Java Instant to LocalDate
    17 February

    Convert Instant to LocalDate in Java

    Table of ContentsUsing ofInstant method [ Java 9+]Using ZoneDateTime’s toLocalDate() [Java 8] In this article, we will see how to convert Instant to LocalDate in java. Using ofInstant method [ Java 9+] Java 9 has introduced static method ofInstant() method in LocalDate class. It takes Instant and ZoneId as input and returns LocalDate object. [crayon-6272ec1824220636987190/] […]

  • Convert String to LocalDateTime in Java
    17 February

    Convert String to LocalDateTime in Java

    Table of ContentsJava String to LocalDateTimeConvert String to LocalDateTime with custom format In this article, we will see how to convert String to LocalDateTime in Java. LocalDateTime class was introduced in Java 8. LocalDateTime represents local date and time without timezone information. It is represented in ISO 8601 format (yyyy-MM-ddTHH:mm:ss) by default. Java String to […]

  • Java LocalDateTIme to String
    16 February

    Format LocalDateTime to String in Java

    Table of ContentsJava LocalDateTime To StringConvert LocalDateTime to Time Zone ISO8601 StringParse String to LocalDateTime In this article, we will see how to format LocalDateTime to String in java. Java LocalDateTime To String To format LocalDateTime to String, we can create DateTimeFormatter and pass it to LocalDateTime’s format() method. [crayon-6272ec1823de7175023839/] Here are steps: Get LocalDateTime […]

  • Find duplicate elements in the Stream
    17 October

    Java 8 – Find duplicate elements in Stream

    Table of ContentsIntroductionUsing distinct()Using Collections.frequency()Using Collectors.toSet()Using Collectors.toMap()Using Collectors.groupingBy()Conclusion Introduction When working with a collection of elements in Java, it is very common to have duplicate elements, and Java provides different APIs that we can use to solve the problem. Java 8 Stream provides the functionality to perform aggregate operations on a collection, and one of […]

Leave a Reply

Your email address will not be published.

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.