Java Stream anyMatch()

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

1. Stream anyMatch() Method Overview


The Stream.anyMatch() method is a terminal operation that returns a boolean indicating whether any elements of the stream match the given predicate. It is useful when you need to verify if there exists at least one element in the stream that satisfies the provided condition.


boolean anyMatch(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 once it is invoked, you cannot reuse the stream.

- The method returns a boolean value.

- It is a short-circuiting operation; it doesn't need to process the entire stream once a matching element has been found.

- If the stream is empty, then no elements would match, and the result is false.

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

2. Stream anyMatch() Method Example


public class StreamAnyMatchExample {
    public static void main(String[] args) {
        Stream<String> namesStream = Stream.of("John", "Jane", "George", "Judy", "Jack");

        // Check if there's any name that starts with the letter "G"
        boolean anyNameStartsWithG = namesStream.anyMatch(name -> name.startsWith("G"));

        System.out.println("Is there any name that starts with the letter 'G'? " + anyNameStartsWithG);


Is there any name that starts with the letter 'G'? true


In the provided example: We have a stream of names and use anyMatch() to check if there's any name that starts with the letter "G". Since "George" matches the condition, the result is true.