【问题标题】:Scala Circular Map斯卡拉圆形地图
【发布时间】:2016-03-01 22:31:34
【问题描述】:

Scala 是否有类似于 Guava EvictingQueue 或 Commons CircularFifoBuffer 的循环地图,但用于地图。我想限制地图的增长而不将其清空。

val MapCache = collection.mutable.Map[String, String]()

我看了一下这里,但没有看到任何可行的方法。 http://docs.scala-lang.org/overviews/collections/overview.html

【问题讨论】:

  • 您可以在 scala 代码中轻松使用提到的集合。
  • 我可以,但这些不是映射,使用键值对的对象意味着我仍然需要迭代映射来执行 .contains。
  • 您希望 HashMap 的驱逐规则是什么?那里没有第一个或最后一个元素之类的东西……您也可以使用WeakHashMap,它是根据GC使用情况删除元素…….scalaz有某种包装器。 MemoweakHashMemo
  • 用例是什么?你想要的真的是缓存实现吗?如果是这样,我强烈建议使用喷雾缓存。

标签: scala


【解决方案1】:

在基础库no.

前面提到的spray cachehttp://spray.io/documentation/1.2.3/spray-caching/是基于https://github.com/ben-manes/concurrentlinkedhashmap,一个Java库。

使用良好的基于​​ Java 的实现或喷雾提供的小型包装器应该是一个不错的选择。

此规则的唯一例外是,如果您尝试使用 ScalaJs 实现某些东西并且不能使用 Java Libs。

【讨论】:

    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 2011-08-10
    • 2018-12-11
    • 2011-09-16
    • 2016-01-31
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多