Warum gibt es kein WeakSet im Java Collection Framework?
Die einzig wirklich richtige Antwort darauf ist, dass wir Ihnen nicht sagen können, warum, weil wir nicht die Leute sind, die die Designentscheidungen getroffen haben. Nur die Java-Designer wissen, warum sie die Entscheidung getroffen haben 1 .
Obwohl es möglicherweise nur begrenzte Anwendungsfälle für gibt WeakHashSet, bestand ein Teil der Designphilosophie der Java-Klassenbibliothek darin, zu vermeiden, dass die Klassenbibliotheken für alle möglichen Anwendungsfälle mit Dienstprogrammklassen gefüllt werden.
Es gibt eine Reihe anderer Klassenbibliotheken, die Sammlungstypen enthalten. Apache Commons Collections und Google Collections (auch bekannt als Guava) sind gute Beispiele. Allerdings WeakHashSethat noch nicht einmal der Schnitt für die Apache- und Google-Bibliotheken gemacht.
Und natürlich können Sie Collections.newSetFromMapeine WeakHashMapInstanz umschließen.
1 - Die Debatte über die Richtigkeit dieser Entscheidung ist für StackOverflow nicht möglich. Dies ist eine Q & A-Site, kein Diskussionsforum.