1. Introduction
In this article, You'll be learning how to use the new java 8 Stream API method anyMatch() with Examples.
anyMatch(): This method returns whether any elements of this stream match the provided predicate. It may not evaluate the predicate on all elements if not necessary for determining the result.
This is a short circuit terminal operation.
Java 8 Stream anyMatch() Examples
2. anyMatch() Syntax
This method takes Predicate as an input argument that evaluates the given condition. If the given condition is met then it does not check the condition for the remaining elements in the list or collection. Then, It returns true on the first match and returns false if no match is found.
boolean anyMatch(Predicate<? super T> predicate)
3. anyMatch() Example to check Even Number
package com.javaprogramto.java8.anymatch; import java.util.stream.Stream; public class AnyMatchEvenExample { public static void main(String[] args) { Integer[] numbers = {1, 3, 5, 7, 8, 9}; Stream<Integer> intStream = Stream.of(numbers); boolean matchFound = intStream.anyMatch(number -> number % 2 == 0); if(matchFound){ System.out.println("int array has even number"); } else { System.out.println("int array has no even number"); } } }
Output:
int array has even number
4. anyMatch() Example To Check Salary > 10000 and Designation Manager
package com.javaprogramto.java8.anymatch; import java.util.stream.Stream; public class AnyMatchSalary { public static void main(String[] args) { Employee e1 = new Employee(100, 10000, "SE"); Employee e2 = new Employee(101, 20000, "Manager"); Employee e3 = new Employee(102, 30000, "manager"); Stream<Employee> empStream = Stream.of(e1, e2, e3); boolean foundEmp = empStream.anyMatch(emp -> emp.getDesgination().equalsIgnoreCase("Manager") && emp.getSalary() > 10000); if(foundEmp){ System.out.println("Found manager salaray > 10000"); } else { System.out.println("No manager with salary > 10000"); } Stream<Employee> empStream2 = Stream.of(e1, e2, e3); boolean foundEmp2 = empStream2.anyMatch(emp -> emp.getDesgination().equalsIgnoreCase("SE") && emp.getSalary() > 10000); if(foundEmp2){ System.out.println("Found SE salaray > 10000"); } else { System.out.println("No SE with salary > 10000"); } } } class Employee { private int id; private long salary; private String desgination; public Employee(int id, long salary, String desgination) { this.id = id; this.salary = salary; this.desgination = desgination; } public int getId() { return id; } public void setId(int id) { this.id = id; } public long getSalary() { return salary; } public void setSalary(long salary) { this.salary = salary; } public String getDesgination() { return desgination; } public void setDesgination(String desgination) { this.desgination = desgination; } }
Found manager salaray > 10000 No SE with salary > 10000
5. anyMatch() on Empty Stream
package com.javaprogramto.java8.anymatch; import java.util.stream.Stream; public class AnyMatchOnEmptyStream { public static void main(String[] args) { Stream<String> emptyStream = Stream.empty(); boolean found = emptyStream.anyMatch(str -> str.length() > 0); if(found){ System.out.println("Stream has values"); } else { System.out.println("Stream is empty and no values"); } } }
Output:
Stream is empty and no values
6. Difference Between anyMatch() and contains() method
Actually, Both of these two methods work similarly but anyMatch() works only with Streams and whereas contains() only with the List or Set implementations.
If you are on Java 8 it is good to use the Stream.anyMatch() method.
7. Conclusion
In this article, You have seen how to use Stream.anyMatch() method which is shorter version of the contains() method.
If any of the elements in the stream matches the given predicate then it stops executing the predicate on the remaining elements of the stream.
As usual, All examples are shown over GitHub.
Ref
Beginnersbook
No comments:
Post a Comment
Please do not add any spam links in the comments section.