Trong hướng dẫn này, chúng ta sẽ tìm hiểu Stream là gì trong Java và cách chúng ta có thể tiếp cận nó. Mình sẽ so sánh Stream API với các câu lệnh SQL như một cách tiếp cận

Mình khuyên mọi người nên xem qua source của Stream Interface để hiểu rõ hơn vể một số hoạt động bên trong nó

Giới thiệu về Stream API

Stream đại diện cho một chuỗi các đối tượng từ một nguồn, hỗ trợ các hoạt động tổng hợp. Stream được sử dụng để thực hiện các hoạt động xử lý dữ liệu phức tạp như lọc, so sánh, ánh xạ,…

Chúng ta có thể hình dung Strean như một cách tiếp cận để xử lý dữ liệu theo cách tương tự như câu lệnh SQL.

Giả sử chúng ta có một bảng Sinh viên với các dữ liệu sau (quen thuộc quá :D)

ID Tên Họ Roll No Xếp loại Tổng điểm
1 Akshay Singh 1 V 900
2 Aman Pal 2 V 700
3 Bharat P 3 V 750
4 Piyush Chandra 4 V 990
5 Atul Kumar 5 V 1000

Và class cho bảng Sinh viên ở trên:

Example Student class

Bây giờ, chúng ta sẽ sử dụng Stream API để hình dung nó như 1 câu lệnh SQL

1. Stream<T> filter(Predicate<? super T> predicate);

Query: Tìm tất cả sinh viên từ bảng trên với tên bắt đầu bằng chữ ‘A’

2. long count();

Query: Đếm tổng số sinh viên trong bảng

Query: Đếm tổng số sinh viên có tên bắt đầu bằng chữ ‘A’

3. Stream<T> limit(long maxSize);

Query: Tìm 10 sinh viên đầu tiên trong bảng có tên bắt đầu bằng chữ ‘A’

4. Optional<T> min(Comparator<? super T> comparator);

Query: Tìm sinh viên có tổng điểm thấp nhất

5. Optional<T> max(Comparator<? super T> comparator);

Query: Tìm sinh viên có tổng điểm cao nhất

6.Stream<T> sorted(Comparator<? super T> comparator);

Query: Sắp xếp sinh viên theo tổng điểm từ cao đến thấp

7.Optional<T> findFirst();

Query: Tìm sinh viên đầu tiên trong bảng có tên bắt đầu bằng chữ ‘A’

Dưới đây là code đầy đủ của các Stream API đã nhắc đến ở trên

Nguồn: https://dzone.com/articles/java-streams-1

Bình luận