OLHub

Stream API & Lambda

Lambda, functional interface, Stream API (map/filter/reduce), Collectors, Optional. Xử lý dữ liệu theo functional style — cốt lõi của Java modern, nền tảng để đọc code enterprise và framework như Spring WebFlux.

12 bài · ~153 phútMiễn phí

Nội dung

Danh sách bài học

  1. 01

    Tổng quan module — Stream API & Lambda

    Bản đồ học tập module Stream API & Lambda: lambda, functional interface, stream pipeline, collectors, optional, parallel. Biết trước để học đúng thứ tự.

    ~5 phút
  2. 02

    Lambda và Functional Interface trong Java

    Lambda expression, Single Abstract Method (SAM), 4 functional interface cốt lõi và nguyên tắc effectively final trong quản lý ấn phẩm thư viện.

    ~12 phút
  3. 03

    Method Reference và invokedynamic: Cơ Chế Bytecode Bên Dưới Lambda

    Phân biệt 4 dạng method reference, cơ chế invokedynamic của JSR 292, LambdaMetafactory và khác biệt bộ nhớ giữa capturing và non-capturing lambda.

    ~12 phút
  4. 04

    Stream Basics: Pipeline Lazy và Terminal Operation

    Cơ chế lazy evaluation của Stream API, mô hình Sink chaining, element-by-element traversal và an toàn xử lý stream vô hạn với short-circuit.

    ~12 phút
  5. 05

    Map, Filter và Reduce: Ba Thao Tác Cốt Lõi Của Stream API

    Làm chủ bộ ba map, filter, reduce trong Java Stream, tối ưu primitive stream và bảo đảm tính chất kết hợp (associativity) khi chạy song song.

    ~12 phút
  6. 06

    Stream Nâng Cao: flatMap, takeWhile, dropWhile và Stateful Operations

    Phẳng hóa cấu trúc lồng nhau với flatMap, mapMulti, cắt chuỗi dữ liệu với takeWhile/dropWhile và kiểm soát thao tác stateful trong Java Stream.

    ~12 phút
  7. 07

    Optional: Xử Lý Thiếu Dữ Liệu An Toàn Thay Thế Con Trỏ Null

    Làm chủ Optional trong Java, phân biệt orElse vs orElseGet, chuỗi biến đổi map/flatMap an toàn và các nguyên tắc thiết kế API chống lạm dụng.

    ~12 phút
  8. 08

    Collectors Deep Dive: toMap, groupingBy và Custom Collector

    Làm chủ Collectors trong Java: xử lý trùng khóa toMap, phân nhóm đa tầng groupingBy, partitioningBy và thiết kế Custom Collector qua Collector.of.

    ~12 phút
  9. 09

    Parallel Stream: Khi Nào Nên Dùng và Cạm Bẫy Luồng Phổ Biến

    Cơ chế ForkJoinPool, công thức Doug Lea NxQ > 10000, cạm bẫy starvation khi nghẽn I/O và nguyên tắc chọn giữa parallelStream với CompletableFuture.

    ~12 phút
  10. 10

    Immutability và Functional Style: Thiết Kế Code Java Không Có Bất Ngờ

    Thiết kế hệ thống bất biến (Immutability), Pure Functions, Record trong Java 16+, kỹ thuật Copy-then-Validate và cạm bẫy final reference.

    ~12 phút
  11. 11

    Mini-challenge: Sales report với stream pipeline

    Bài thực hành khép lại Module — phân tích 10k bản ghi sales bằng stream chain: lọc, group, aggregate, top-N, output báo cáo.

    ~30 phút
  12. 12

    Tổng kết module — Stream API & Lambda

    Recap toàn module: cheat-sheet, glossary, pitfall checklist, và self-assessment 1-1 với 5 learning outcomes. Dùng để ôn trước khi chuyển module tiếp theo.

    ~10 phút