2011-08-27 2 views
7

... almeno non "ufficiale".Perché non c'è implementazione di WeakList e WeakSet in Java?

Si può facilmente google due o tre "WeakList" esempio di implementazione e per "WeakSet" uno molto buono può essere trovato nelle fonti NetBeans Platform API.

Ho letto similar question inserito qui chiedendo WeakSet. Le risposte erano "non c'è un caso per WeakSet". Se sarà così perché esistono queste implementazioni non ufficiali?

+0

Probabilmente perché tali strutture di dati sono abbastanza specializzate - non che non ci sia un caso d'uso * a * (inventato-esistente-da qualche parte) così tanto che è solo per una nicchia * molto * specifica che non garantisce l'inclusione in la libreria standard. Includerlo nella libreria Java di base forzerebbe anche tutti i run time [certificati] Java per includerlo, aumentando le dimensioni (bytecode) e il codice (complessità) - non è "libero" per rendere qualcosa parte delle librerie standard. (Ci sono così tante altre funzionalità "comuni" che trovo mancanti: - /) –

risposta

8

Forse è possibile ottenere uno utilizzando Collections.newSetFromMap(new WeakHashMap()). Molte raccolte non esistono come classi pubbliche (se non sono così importanti), ma possono essere ottenute con i metodi di produzione Collections.