×

Stream API trong Java 8 là gì?

Stream API trong Java 8 là một bộ công cụ mới và mạnh mẽ, được thiết kế để cung cấp một cách tiếp cận hiệu quả, đơn giản và linh hoạt cho việc xử lý tuần tự và song song các tập hợp dữ liệu (collections). API này đặc biệt hữu ích khi làm việc với tập hợp lớn dữ liệu, cho phép viết mã ngắn gọn và dễ đọc hơn, đồng thời tận dụng hiệu suất cao từ việc xử lý song song.

Tính năng chính của Stream API:

  1. Không Lưu Trữ Dữ Liệu: Stream không lưu trữ dữ liệu. Chúng chỉ xử lý dữ liệu từ nguồn (ví dụ: collections, mảng) và thực hiện các thao tác trung gian và cuối cùng trên dữ liệu đó.

  2. Chức năng Chính: Stream API cung cấp các chức năng chính bao gồm filter, map, limit, reduce, find, match, sort, và nhiều chức năng khác, giúp thao tác và xử lý tập hợp dữ liệu một cách linh hoạt.

  3. Làm Việc Với Lambda: Stream API được thiết kế để hoạt động chặt chẽ với lambda expressions, cho phép viết code ngắn gọn và rõ ràng.

  4. Hỗ trợ Xử lý Song song: Một trong những lợi ích lớn nhất của Stream API là khả năng xử lý dữ liệu một cách song song mà không cần viết mã phức tạp để quản lý các luồng, giúp cải thiện đáng kể hiệu suất ứng dụng.

Ví dụ sử dụng Stream API:

List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
List<String> filtered = strings.stream() // Tạo một stream từ danh sách
                                .filter(string -> !string.isEmpty()) // Lọc ra các chuỗi không rỗng
                                .collect(Collectors.toList()); // Thu thập kết quả vào một List mới
System.out.println(filtered);

Các Thao tác Trên Streams:

  • Thao tác trung gian (Intermediate operations): Các thao tác trả về một stream mới, như filter, map, sorted.
  • Thao tác cuối cùng (Terminal operations): Các thao tác sản xuất một kết quả cuối cùng hoặc tác động đến stream mà không trả về một stream mới, như forEach, reduce, collect.

Stream API là một phần quan trọng của Java 8, mang lại một phương pháp mới và hiệu quả để xử lý dữ liệu trong các ứng dụng Java, đặc biệt khi xử lý các tập hợp dữ liệu lớn.

Comments