Thêm đúng một chữ 'parallel' vào 100 phần tử, và mã chạy chậm đi hai nghìn lần
Bốn phép đo JMH trên máy 16 nhân: khi nào song song thắng bảy lần, khi nào thua hai nghìn lần, và ba câu hỏi để quyết định trước khi gõ chữ parallel.
Bốn phép đo JMH trên máy 16 nhân: khi nào song song thắng bảy lần, khi nào thua hai nghìn lần, và ba câu hỏi để quyết định trước khi gõ chữ parallel.
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.
Bốn dạng method reference, chỗ tham số lặng lẽ trở thành this, trường hợp javac báo ambiguous, và khi nào rút gọn lại làm mã khó đọc hơn chứ không dễ hơn.