2011-08-27 13 views
7

... ít nhất không phải là "chính thức".Tại sao không có triển khai WeakList và WeakSet trong Java?

Bạn có thể dễ dàng google hai hoặc ba ví dụ "WeakList" thực hiện và cho "WeakSet" một trong rất tốt có thể được tìm thấy trong các nguồn NetBeans Platform API.

Tôi đọc similar question được đặt ở đây yêu cầu WeakSet. Câu trả lời là "không có usecase cho WeakSet". Nếu nó sẽ như thế này thì tại sao những triển khai không chính thức này tồn tại?

+0

Có lẽ vì cấu trúc dữ liệu như vậy là khá chuyên biệt - không phải là không có * a * (contrived-existing-somewhere) trường hợp sử dụng quá nhiều vì nó chỉ dành cho một niche * rất * cụ thể không đảm bảo đưa vào thư viện chuẩn. Việc đưa nó vào thư viện Java cơ bản cũng sẽ buộc tất cả các lần chạy Java được chứng nhận bao gồm nó, tăng kích thước (bytecode) và mã (độ phức tạp) - nó không phải là "miễn phí" để tạo ra một phần của thư viện chuẩn. (Có rất nhiều tính năng "phổ biến" mà tôi thấy thiếu: - /) –

Trả lời

8

Có lẽ bạn có thể nhận được một bằng cách sử dụng Collections.newSetFromMap(new WeakHashMap()). Nhiều bộ sưu tập không tồn tại dưới dạng lớp công khai (nếu chúng không quan trọng), nhưng có thể thu được bằng phương thức nhà máy Collections.

Các vấn đề liên quan