在有限大小的 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()
我想要一个带有一些重复键的有限大小的地图。达到大小时,我想删除最旧的条目。
比如这个数据集:
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()