Java Stream allMatch()

In this guide, you will learn about the Stream allMatch() method in Java programming and how to use it with an example.

1. Stream allMatch() Method Overview


The Stream.allMatch() method is a terminal operation that returns a boolean indicating whether all elements of the stream match the given predicate. It's often used to determine if every element in the stream satisfies a particular condition.


boolean allMatch(Predicate<? super T> predicate)


- predicate: a non-interfering, stateless predicate to apply to elements of the stream.

Key Points:

- It's a terminal operation, which means it ends the pipeline and you cannot reuse the stream afterward.

- The method returns a boolean value.

- Like anyMatch(), it's a short-circuiting operation. It stops processing as soon as it finds an element that doesn't match the condition.

- If the stream is empty, then the result is true (considered vacuously true, because no elements failed to match the predicate).

- It processes elements in the order they appear until it finds a non-matching element or all elements have been processed.

2. Stream allMatch() Method Example


public class StreamAllMatchExample {
    public static void main(String[] args) {
        Stream<String> fruitStream = Stream.of("apple", "banana", "cherry", "date", "elderberry");

        // Check if all fruit names have more than 4 characters
        boolean allFruitsHaveMoreThan4Chars = fruitStream.allMatch(fruit -> fruit.length() > 4);

        System.out.println("Do all fruit names have more than 4 characters? " + allFruitsHaveMoreThan4Chars);


Do all fruit names have more than 4 characters? true


In the provided example: We have a stream of fruit names. Using allMatch(), we check if every fruit name has more than 4 characters. Since each name in the stream ("apple", "banana", "cherry", "date", "elderberry") has a length greater than 4, the result is true.