Vì vậy, tại sao không có bất kỳ WeakSet nào trong khung thu thập java?
Câu trả lời thực sự chính xác duy nhất cho điều đó là chúng tôi không thể cho bạn biết lý do tại sao vì chúng tôi không phải là người đưa ra quyết định thiết kế. Chỉ các nhà thiết kế Java mới biết lý do tại sao họ đưa ra quyết định 1 .
Mặc dù có thể có các trường hợp sử dụng hạn chế WeakHashSet
, một phần của triết lý thiết kế thư viện lớp Java là tránh đưa các thư viện lớp vào các lớp tiện ích cho tất cả các trường hợp sử dụng có thể có.
Có một số thư viện lớp khác bao gồm các loại bộ sưu tập; Apache Commons Collections và Google Collections (hay còn gọi là Guava) là những ví dụ điển hình. Tuy nhiên, WeakHashSet
thậm chí chưa "cắt giảm" cho các thư viện Apache và Google.
Và, tất nhiên, bạn có thể sử dụng Collections.newSetFromMap
để bọc một WeakHashMap
phiên bản.
1 - Tranh luận về tính đúng đắn của quyết định đó nằm ngoài phạm vi của StackOverflow. Đây là một trang hỏi đáp, không phải diễn đàn thảo luận.