如何在Java TreeMap中设置最大大小?

时间:2016-05-20 15:37:59

标签: java treemap

我正在使用Java中的TreeMap构建最近最少使用的缓存。我选择TreeMap的原因是TreeMap.floorEntry(String)方法。 我希望能够为缓存指定最大大小(TreeMap)。 然后我想使用LRU驱逐机制,因此, 当缓存达到最大大小并且有新缓存的记录时, 我希望缓存添加新记录,并删除最旧的条目。

1 个答案:

答案 0 :(得分:1)

我希望我能正确理解你的问题。 我会使用ConcurrentSkipListMap(它也有floorEntry方法)并实现我自己的小最大大小控件。

这就是我要做的事情:

tlLiftA2 :: (Category c, Category d) =>
        (∀ α β γ δ . c α β -> d γ δ -> e (α,γ) (β,δ))
          -> TList c φ ψ -> TList d χ ω -> TList e (φ,χ) (ψ,ω)
tlLiftA2 q TNil (TCons g m) = TCons (q id g) $ tlLiftA2 q TNil m
tlLiftA2 q (TCons f l) TNil = TCons (q f id) $ tlLiftA2 q l TNil

它有点hackish但应该做这个工作。