Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

java
stream
match
predicate
communitycreator

What is the anyMatch() method of the Stream Interface?

Programming Bytes

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

The anyMatch method of the Stream Interface can be used to check if at least one element of the stream matches or satisfies the provided PredicatePredicate is a Functional interface, which takes one argument and returns either true or false based on the condition defined..

The anyMatch method is a short-circuiting terminal operation.

  • It will return false if the stream is empty.
  • If any element matches the Predicate, then the anyMatch method will return true, without applying the Predicate function on the remaining elements on the stream.

Syntax

boolean anyMatch(Predicate<? super T> predicate)

Parameter

anyMatch takes a Predicate function as an argument.

Return value

  • true: If at least one element in the stream matches the provided Predicate.

  • false: If all elements don’t match the provided Predicate.

Code

import java.util.ArrayList;
class AnyMatchTest {
public static void main( String args[] ) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("The numbers list is " + numbers);
boolean hasNumber;
hasNumber = numbers
.stream()
.anyMatch((number) -> number > 100 );
System.out.println("Cheking if a number > 100 is present in list - " + hasNumber);
numbers.add(101);
System.out.println("\nAdded 101 to the numbers list now the list is - " + numbers);
hasNumber = numbers
.stream()
.anyMatch((number) -> number > 100 );
System.out.println("Cheking if a number > 100 is present in list - " + hasNumber);
}
}

Explanation

In the code above, we:

  • Created an ArrayList with the elements:
1,2,3
  • From the ArrayList, we get the stream of the ArrayList through the stream() function.

  • Called the anyMatch method with a Predicate function. In the Predicate function, we checked if the value is > 100. The anyMatch method will loop through all the elements of the stream and test each element against the passed Predicate function. In our case, no element matches the Predicate function because all the elements in the list are < 100. So, false is returned.

  • Added a 101 value to the ArrayList, and called the anyMatch method on the ArrayList. Now the list contains one element (101) which matches the Predicate function. In this case, the anyMatch method will return true.

RELATED TAGS

java
stream
match
predicate
communitycreator

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring