Wednesday 11 October 2017

How to use allMatch terminal operation of Java 8 Stream | Streams in Java 8


Person.java
enum Gender
{
    MALE, FEMALE
}

public class Person
{
    private String name;
    private String email;
    private Gender gender;
    private int age;

    public Person(String name, String email, Gender gender, int age)
    {
        super();
        this.name = name;
        this.email = email;
        this.gender = gender;
        this.age = age;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getEmail()
    {
        return email;
    }

    public void setEmail(String email)
    {
        this.email = email;
    }

    public Gender getGender()
    {
        return gender;
    }

    public void setGender(Gender gender)
    {
        this.gender = gender;
    }

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

}
StreamAllMatchDemo.java
import java.util.ArrayList;
import java.util.List;

public class StreamAllMatchDemo
{
    public static void main(String[] args)
    {
        List<Person> personList = new ArrayList<>();

        personList.add(new Person("Alice","alice@gmail.com",    Gender.FEMALE, 26));
        personList.add(new Person("Bob","bob@gmail.com", Gender.MALE, 32));
        personList.add(new Person("Carol","carol@gmail.com",Gender.FEMALE, 23));
        personList.add(new Person("David","david@gmail.com",    Gender.MALE, 39));
        personList.add(new Person("Eric","eric@gmail.com", Gender.MALE, 26));
        personList.add(new Person("Frank","frank@gmail.com",Gender.MALE, 33));
        personList.add(new Person("Gibb","gibb@gmail.com", Gender.MALE, 27));
        personList.add(new Person("Henry","henry@gmail.com",    Gender.MALE, 30));
        personList.add(new Person("Isabell","isabell@gmail.com",Gender.FEMALE, 22));
        personList.add(new Person("Jane","jane@gmail.com",Gender.FEMALE, 24));

        /*
         * The allMatch()operation answers the question: Do all elements in the
         * stream meet this condition? It returns true if and only if all
         * elements match a provided predicate, otherwise return false.
         * 
         * This is a short-circuiting terminal operation because the operation
         * stops immediately if any unmatched element is found (just like
         * short-circuit behavior of the AND operator). The following example
         * checks if all persons are male:
         */
        boolean areAllMale = personList.stream()
                .allMatch(p -> p.getGender().equals(Gender.MALE));
        
        System.out.println("Are all persons male? : " + areAllMale);
        
        
        boolean allUseGMail = personList.stream()
                .allMatch(p -> p.getEmail().endsWith("gmail.com"));

        System.out.println("Does everyone use GMail? : " + allUseGMail);
    }

}
Output
Are all persons male? : false
Does everyone use GMail? : true

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/StreamDemo_TOP_allmatch_Person.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/StreamDemo_TOP_allmatch_Person

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/17906082b9d83230789adc7b5df551c73ce2b46f/BasicJava/StreamDemo_TOP_allmatch_Person/?at=master

See also:
  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • No comments:

    Post a Comment