Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách dùng intermediate stream operation trong JShell Java 9?

JShell là công cụ giới thiệu trong Java 9, nhận câu lệnh đơn giản như biểu thức, biến, method, class... làm input và sinh kết quả ngay lập tức.

Stream là chuỗi giá trị. Intermediate stream operation là operation nhận một stream. Ví dụ, áp dụng cho lambda expression và sinh stream khác làm kết quả.

Các intermediate stream operation phổ biến:

  • 1) sorted(): Giữ nguyên phần tử stream tiêu thụ nhưng đặt theo thứ tự tự nhiên.
  • 2) distinct(): Trả về stream chỉ giữ phần tử duy nhất của input stream, giữ thứ tự tương đối.
  • 3) filter(): Lọc phần tử stream dựa trên logic.
  • 4) map(): Áp dụng lambda expression tính kết quả mới từ phần tử input stream. Trả về stream các kết quả đó.

Đoạn mã dưới triển khai các intermediate stream operation trong JShell.

Đoạn mã

jshell> List<Integer> numbers = List.of(3, 10, 23, 200, 77, 9, 32);
numbers ==> [3, 10, 23, 200, 77, 9, 32]
jshell> numbers.stream().sorted().forEach(elem -> System.out.println(elem));
3
9
10
23
32
77
200

jshell> List<Integer> numbers = List.of(3, 5, 54, 280, 5, 9, 40);
numbers ==> [3, 5, 54, 280, 5, 9, 40]
jshell> numbers.stream().distinct().forEach(elem -> System.out.println(elem));
3
5
54
280
9
40

jshell> numbers.stream().distinct().sorted().forEach(elem -> System.out.println(elem));
3
5
9
40
54
280

jshell> numbers.stream().distinct().map(num -> num * num).forEach(elem -> System.out.println(elem));
9
25
2916
78400
81
1600