Un paio di domande riguardanti WeakReference di Java e Collezioni:trovare oggetti di riferimento deboli in collezioni in java
c'è una biblioteca là fuori che implementa diverse interfacce dati-set di Java (ad es Collection, List, Set, Coda, ecc.) Con WeakReference in modo trasparente? Come WeakHashMap è per l'interfaccia HashMap?
Oppure è la soluzione comune per creare semplicemente raccolte normali e quindi utilizzare una sorta di trucco con compareTo o un comparatore o qualcosa per rendere correttamente la ricerca della raccolta?
Io fondamentalmente vorrei questo:
public interface WeakCollection<E> extends Collection<E> {}
Ma il contratto per l'interfaccia è che i riferimenti a E sono memorizzati debolmente. Ovviamente non ho un problema con get(int index)
restituendo null quando quell'oggetto è andato via ecc., Ma vorrei che la funzione contains(E e)
e altri elementi piaccia funzionare correttamente.
Sto solo cercando di evitare la trappola "non inventato qui" e assicurandomi che se lo realizzo io stesso è la soluzione più semplice possibile.
Google Collections forse? Il loro Map Builder è abbastanza buono, lo so – akarnokd
Un trucco elegante (solo a volte applicabile) consiste nell'includere un WeakReference canonico nell'oggetto referente stesso - solo bisogno di creare mai un riferimento per target ed equivale a/== lavoro. –