Chuỗi php để truyền phát

Trong bài viết này, chúng ta sẽ tìm hiểu về một trong những chức năng được bổ sung từ phiên bản Java 8 - Stream. Tuy nhiên, trước khi tìm hiểu về Stream, bạn cần phải có kiến ​​thức về biểu thức lambda, tham chiếu phương thức, giao diện chức năng

Truyền phát API

Một trong những tính năng mới trong Java 8 chính là Stream - Trợ giúp cho công việc thao tác trên bộ sưu tập và mảng trở nên dễ dàng và tối ưu hóa hơn

Create Stream

Luồng có thể tạo từ bộ sưu tập hoặc mảng bằng cách sử dụng các phương thức

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

2 hoặc
String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

3

Ví dụ

Tạo luồng từ mảng bằng cách sử dụng

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

4 hoặc
String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

5

String[] arr= {"a", "b","c"};
Stream stream = Arrays.stream[arr];

hoặc

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

Tạo luồng từ bộ sưu tập

List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

Đa luồng với Stream

Stream API cũng đơn giản hóa đa luồng bằng cách sử dụng phương thức

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

6

________số 8

Thực hiện hành động với Stream

Có nhiều thuật toán hữu ích có thể được sử dụng với Stream. Chúng được chia thành các hoạt động trung gian [trả về Stream] và hoạt động đầu cuối [trả về kết quả của kiểu xác định]

Lưu ý. Các hoạt động mà chúng ta thực hiện trên Bộ sưu tập, mảng hay bất kỳ nguồn dữ liệu nào khác sẽ không làm thay đổi dữ liệu ban đầu, chúng chỉ trả về luồng mới

Ví dụ

long count = list.stream[].distinct[].count[];

Phương thức

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

7 sẽ tạo ra một luồng mới với các phần tử là duy nhất [duy nhất] của luồng trước đó. Phương thức
String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

8 sẽ trả về kích thước của luồng

Thay thế cho vòng lặp

Stream API giúp thay thế các vòng lặp

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

9,
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

0 và
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

1. Xem ví dụ dưới đây

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

5

Đoạn mã trên có thể được thay đổi khi sử dụng Stream API as after

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

6

Filter data with
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

2

Với phương thức

List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

2 giúp loại bỏ các phần tử dựa trên tiêu chí định trước

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

9

Với ví dụ trên, mình đang thực hiện tìm các phần tử chưa có “J”

Ánh xạ với
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

4

Stream cung cấp phương thức

List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

4 giúp ánh xạ phần tử tới các kết quả tương ứng

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

2

List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

6,
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

7 và
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

8

Stream API cung cấp các phương thức

List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

6,
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

7 và
List list = Arrays.asList["a","b","c"];
Stream stream = list.stream[];

8 sẽ trả về giá trị của kiểu
list.parallelStream[].forEach[element -> element.doSomeThing[]];

2. Ngay cái tên của 3 phương thức này đã cho chúng ta thấy chức năng của nó

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

0

list.parallelStream[].forEach[element -> element.doSomeThing[]];

3

Phương thức

list.parallelStream[].forEach[element -> element.doSomeThing[]];

3 kết hợp các phần tử của luồng thành một cách sử dụng một BinaryOperator

Ví dụ

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

0

Với ví dụ trên mình muốn tính tổng tất cả các phần tử với 1 số nguyên ban đầu [số 23]. Vì vậy đoạn mã trên sẽ trả về kết quả là 26

Thu thập kết quả Luồng sang một Bộ sưu tập với
list.parallelStream[].forEach[element -> element.doSomeThing[]];

5

list.parallelStream[].forEach[element -> element.doSomeThing[]];

5 rất tiện dụng trong trường hợp cần chuyển đổi Luồng thành Bộ sưu tập và biểu diễn luồng dưới dạng
list.parallelStream[].forEach[element -> element.doSomeThing[]];

7

String[] arr= {"a", "b","c"};
Stream stream = Stream.of[arr];

1

Mục tiêu của bài viết này chỉ là giới thiệu nhanh về Stream. Ngoài các phương thức trên Stream còn cung cấp rất nhiều phương thức khác như

list.parallelStream[].forEach[element -> element.doSomeThing[]];

8,
list.parallelStream[].forEach[element -> element.doSomeThing[]];

9,
long count = list.stream[].distinct[].count[];

0,
long count = list.stream[].distinct[].count[];

1,… mà chúng ta sẽ tìm hiểu trong các bài viết sau

Tham khảo ngay khóa học Java căn bản hoặc Lộ trình Java Fullstack đầy đủ từ căn bản đến nâng cao. Liên hệ ngay bạn Mẫn 0963023185 [zalo] để được hỗ trợ

Chủ Đề