Stavo cercando un'implementazione decente di un'implementazione di lista pigro non modificabile generica per includere le voci dei risultati di ricerca. La parte non modificabile del compito è facile in quanto può essere raggiunto da Collections.unmodifiableList()
quindi ho solo bisogno di risolvere la parte pigro.Elenco pigro non modificabile in Google Collections
Sorprendentemente, google-collections non ha nulla da offrire; mentre LazyList from Apache Commons Collections non supporta i generici.
ho trovato an attempt di costruire qualcosa sulla parte superiore del google-collezioni, ma sembra essere incompleta (ad esempio non supporta size()
), obsoleto (non viene compilato con 1.0 finale) e che richiedono alcune classi esterni, ma potrebbe essere utilizzato come buon punto di partenza per costruire la mia classe.
Qualcuno è a conoscenza di una buona implementazione di LazyList? In caso contrario, quale opzione pensi sia meglio:
- scrivere la mia implementazione, basata su google-collections ForwardingList, simile a ciò che faceva Peter Maas;
- scrivere il proprio wrapper attorno a Commons Collections LazyList (il wrapper aggiungerebbe solo generici quindi non devo eseguire il cast ovunque, ma solo nel wrapper stesso);
- basta scrivere qualcosa sopra
java.util.AbstractList
;
Qualsiasi altro suggerimento è benvenuto.
MODIFICA: spiegazione perché ho bisogno di una lista pigra.
Ho ottenuto un risultato di ricerca Lucene (TopDocs) che è fondamentalmente un mucchio di indicazioni per i documenti Lucene. La mia classe dei risultati di ricerca prenderebbe questi suggerimenti come input e restituirebbe un elenco di oggetti che sono fatti di documenti Lucene estratti o elaborati in altro modo. Inserendo tutto in una lista pigra, voglio assicurarmi di non eseguire elaborazioni costose quando non necessario.
Puoi dire un po 'di più su cosa stai cercando di fare, in modo che possiamo capire perché una "lista pigra" è necessariamente l'approccio giusto? –
@Kevin ha appena aggiunto la spiegazione, grazie! – mindas