Почему существует WeakHashMap, но отсутствует WeakSet?

Из J. Блох

A... источником утечек памяти является слушателей... Лучший способ обеспечить, чтобы обратные вызовы - сбор мусора оперативно хранить только слабые ссылки на них, например, сохраняя их только как ключи в WeakHashMap.

Итак, почему в Java Структура коллекций отсутствует

Ответ 1

Это просто: есть варианты использования для WeakHashMap (в частности, в случае, когда вы хотите комментировать объекты с дополнительными свойствами), но для WeakSets нет использования.

Ответ 3

Итак, почему в структуре java-коллекции нет никакого WeakSet?

Хотя для WeakHashSet могут быть ограниченные варианты использования, часть философии дизайна библиотеки классов Java заключалась в том, чтобы избежать заполнения библиотек классов служебными классами для всех возможных вариантов использования.

Существует множество других библиотек классов, которые включают типы коллекций; Хорошими примерами являются коллекции Apache Commons и Google Collections (aka Guava). Однако WeakHashSet даже не "сделал разрез" для библиотек Apache и Google.