在MAP中添加和删除有限大小

时间:2015-12-24 13:01:27

标签: java dictionary guava multimap

我想要一个有限大小的地图和一些重复的键。当达到大小时,我想删除最旧的条目。

例如,这个数据集:

MAX_SIZE=5;
map.put(100,"OLDEST");
map.put(101,"XXXX");
map.put(101,"YYYY");
map.put(102,"ZZZZ");
map.put(103,"GGGG");

然后我想在地图中插入一个新条目

myLength = map.size()
if(myLength>=MAX_SIZE){
   map.remove(the OLDEST)
}    
map.put(105,"NEW")

我在考虑guava multimap,但是如何删除multimap中最旧的条目?

他们的KEY很长,也许我需要做一个? (效率不高)

oldest=MAX_LONG
for(Long key:map){
     if(key<oldest){
           oldest=key
      }
}
map.remove(oldest)

1 个答案:

答案 0 :(得分:4)

使用LinkedListMultimap:它会保留插入顺序,因此删除最旧的条目只需删除entries()

返回的列表的第一个元素