Estoy buscando almacenar información en un Mapa, así que no tengo que mantener, por ejemplo, un DB. En Java usaría la excelente colección de Google MapMaker y establecería un vencimiento, para mantener el caché tan fresco como sea necesario y softValues, para mantener el uso de la memoria. Entonces tendría una función que calcula el valor de una clave que actualmente no está en la memoria caché.Caché basada en mapas con vencimiento y valores variables
MapMaker().softValues
.expireAfterWrite(10, TimeUnit.MINUTES)
.makeComputingMap(Function(...));
¿Cuál es la mejor manera de hacer esto en Scala?
Si esto está funcionando bien para usted en Java, ¿Por qué hacerlo de manera diferente en Scala? No estoy al tanto de ninguna biblioteca específica de scala para eso. –
Bueno, esperaba una respuesta más idiomática. Si bien Google Guava es excelente, preferiría no tener que incluir la dependencia cuando las bibliotecas de colecciones de Scala están tan bien escritas como lo son. –
Y solo FYI 'MapMaker(). SoftValues' ahora está [en desuso] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/MapMaker.html#softValues ()), use 'CacheBuilder.softValues ()' en su lugar. – sbeliakov