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 WeakHashSet
hat noch nicht einmal der Schnitt für die Apache- und Google-Bibliotheken gemacht.
Und natürlich können Sie Collections.newSetFromMap
eine WeakHashMap
Instanz 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.