PECS: vì sao forEach nhận Consumer<? super T> chứ không phải Consumer<T>
extends để đọc, super để ghi — giải thích bằng hai lỗi biên dịch thật, rồi soi lại chữ ký của sort và forEach trong JDK để thấy quy tắc này ở khắp nơi.
extends để đọc, super để ghi — giải thích bằng hai lỗi biên dịch thật, rồi soi lại chữ ký của sort và forEach trong JDK để thấy quy tắc này ở khắp nơi.
Vì sao generics tồn tại, biên trên cho phép làm gì, và cách bóc một thông báo lỗi suy luận kiểu dài dằng dặc thành ba câu dễ hiểu.
Khung nhìn chỉ đọc khác bản sao bất biến ra sao, vì sao Set.of duyệt ra thứ tự khác nhau mỗi lần chạy JVM, và toList() khác collect(toList()).
Cơ chế modCount, ba cách xoá an toàn, và trường hợp ConcurrentModificationException KHÔNG được ném ra khiến một phần tử bị bỏ sót trong im lặng.
Vì sao Stack nên bị bỏ hẳn, hai bộ phương thức của Queue khác nhau ở chỗ nào, và tại sao toString của PriorityQueue lại không theo thứ tự ưu tiên.
Ba loại Set trả lời câu hỏi 'bằng nhau nghĩa là gì' theo ba cách khác nhau — kèm số đo contains cho thấy TreeSet chậm hơn HashSet 14 lần.