【发布时间】:2011-10-14 07:17:57
【问题描述】:
我希望在地图中缓存信息,这样我就不必保留,例如,点击数据库。在 Java 中,我会使用 Google 集合的优秀 MapMaker 并设置过期时间,以保持缓存尽可能新鲜,并使用 softValues 来降低内存使用率。然后我会有一个函数来计算当前未缓存的键的值。
MapMaker().softValues
.expireAfterWrite(10, TimeUnit.MINUTES)
.makeComputingMap(Function(...));
在 Scala 中最好的方法是什么?
【问题讨论】:
-
如果这在 java 中对你很有效,为什么在 Scala 中会有所不同呢?我不知道有任何 scala 特定的库。
-
嗯,我希望得到一个更惯用的答案。虽然 Google Guava 非常出色,但当 Scala 的集合库编写得如此出色时,我宁愿不必包含依赖项。
-
仅供参考,
MapMaker().softValues现在是deprecated,请改用CacheBuilder.softValues()。
标签: scala collections functional-programming