Отже, чому в рамках колекції Java немає жодного WeakSet?
Єдина справді правильна відповідь на це - ми не можемо сказати вам, чому, тому що ми не люди, які приймали дизайнерські рішення. Тільки розробники Java знають, чому вони прийняли рішення 1 .
Хоча можуть бути обмежені випадки використання для WeakHashSet
, частина філософії дизайну бібліотеки класів Java полягала в тому, щоб уникати заповнення бібліотек класів корисними класами для всіх можливих випадків використання.
Існує ряд інших бібліотек класів, які включають типи колекцій; Хорошими прикладами є колекції Apache Commons і Google Collections (він же Гуава). Однак WeakHashSet
навіть не зробив "скорочення" для бібліотек Apache та Google.
І, звичайно, ви можете використовувати Collections.newSetFromMap
для обгортання WeakHashMap
екземпляра.
1 - Обговорення правильності цього рішення поза сферою дії StackOverflow. Це сайт із запитаннями та відповідями, а не дискусійний форум.