具有有限元素的先进先出图
2022-09-02 19:55:20
我需要一个或简单的a,具有固定数量的元素(n),就像FIFO队列一样工作。HashMap
Map
因此,在元素编号<= n个新元素被简单地放入映射中。
对于元素编号> n,将删除第一个插入的元素,并将最新的元素放入映射中。
Java中是否有类似的东西,或者我必须实现它吗?
我需要一个或简单的a,具有固定数量的元素(n),就像FIFO队列一样工作。HashMap
Map
因此,在元素编号<= n个新元素被简单地放入映射中。
对于元素编号> n,将删除第一个插入的元素,并将最新的元素放入映射中。
Java中是否有类似的东西,或者我必须实现它吗?
您可以按如下方式执行此操作:LinkedHashMap
new LinkedHashMap<K, V>(n) {
@Override protected boolean removeEldestEntry(Entry<K, V> entry) {
return size() > n;
}
};
正如我在一旁,Java冗长是它的最佳功能......以下对我有用:
public class FifoMap extends LinkedHashMap<String, String> {
int max;
/**
*
*/
private static final long serialVersionUID = 1L;
public FifoMap (int max){
super(max + 1);
this.max = max;
}
@Override
public String put (String key, String value) {
String forReturn = super.put(key, value);
if (super.size() > max){
removeEldest();
}
return forReturn;
}
private void removeEldest() {
Iterator <String> iterator = this.keySet().iterator();
if (iterator.hasNext()){
this.remove(iterator.next());
}
}
}
它也适用于Google App Engine,这似乎与Enterge class有问题。