Lọc các phần tử trong collection với Stream Filter()

Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu làm sao để lọc các phần tử trong Stream bởi các điều kiện được chỉ định. Ngoài ra, chúng ta sẽ kết hợp filter() với một số Stream method khác để đạt được kết quả cuối cùng.

Sử dụng Stream.filter()

filter() method là một intermediate operation, cho phép chúng ta lọc các phần tử thoả các điều kiện được chỉ định. filter() method nhận 1 implement của Predicate functional interface như là một triển khai điều kiện lọc.

Giả sử chúng ta có class Customer

Filter Collections

Trong đa số trường hợp, filter() method được sử dụng để lọc các phần tử trong các collection. Ví dụ lấy ra danh sách các Customerpoints trên 100. Để làm được điều này, chúng ta cần kết hợp filter() để lọc các Customerpoints trên 100 là Collectors.toList() để trả về một List Customer thoả điều kiện.

Fillter Collection kết hợp nhiều điều kiện

Chúng ta có thể kết hợp nhiều điều kiện với nhau khi triển khai Predicate interface. Miễn là trả về kết quả TRUE or FALSE để filter() xác nhận mỗi phần tử có thoả mãn điều kiện hay không.

Đếm số lượng các phần tử thoả điều kiện

Đôi lúc, chúng ta chỉ cần đếm số lượng phần tử thoả mãn điều kiện mà không cần nhận kết quả trả về là các object để xử lý gì thêm. Trong trường hợp này, chúng ta chỉ cần kết hợp filter()count() method.

Tóm lược

Trong các hoạt động liên quan đến Stream API, filter() method là một trong những method được sử dụng với tần suất rất cao, nêm các bạn hãy đọc thật kỹ để sử dụng thành thạo method này nha. Tuy nhiên nhớ rằng filter() là một intermediate operation nên nó không thể đi lẽ loi một mình mà phải kết hợp với các terminal operation để có được kết quả cuối cùng.

Nguồn tham khảo

https://www.baeldung.com/java-stream-filter-count

https://www.baeldung.com/java-stream-filter-lambda

Leave a Comment

Your email address will not be published. Required fields are marked *