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

Add and remove from MAP with limited size

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

比如这个数据集:

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 是 Long,也许我需要做一个 for? (效率不高)

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

使用 LinkedListMultimap: it preserves the insertion order, so removing the oldest entry is just a matter of removing the first element of the list returned by entries()