Collector có một hàm 99% thời gian không chạy — rồi ai đó thêm chữ 'parallel', nó hỏng
Bốn hàm của một Collector, dấu vết thật cho thấy khi nào combiner được gọi, và vì sao viết nó sai vẫn không lộ ra trong test.
Bốn hàm của một Collector, dấu vết thật cho thấy khi nào combiner được gọi, và vì sao viết nó sai vẫn không lộ ra trong test.
Collector con là chỗ groupingBy trở nên mạnh, gom nhóm hai tầng trong một câu lệnh, partitioningBy luôn trả đủ hai khoá, và toMap ném ngoại lệ khi khoá trùng — vì sao đó là lựa chọn đúng.
Đi từ tình huống chứ không từ định nghĩa: khi nào map cho ra thứ lồng nhau, ba lần thật cần flatMap, mẹo giữ ngữ cảnh cả hai tầng, và khác biệt filter với takeWhile mà kết quả tự nói ra.
Vì sao một chuỗi Stream không chạy gì cho tới phép cuối, từng phần tử đi hết chuỗi rồi mới tới phần tử sau, và thứ tự phép quyết định số lần tính toán.