FIFOキューのように機能する固定数の要素 ( n )を持つ aHashMap
または simpy aが必要です。Map
したがって、要素番号が <= nになるまで、新しい要素は単純にマップに配置されます。
要素番号 > nの場合、最初に挿入された要素が削除され、最新の要素がマップに配置されます。
Javaにも似たようなものがありますか、それとも実装する必要がありますか?
FIFOキューのように機能する固定数の要素 ( n )を持つ aHashMap
または simpy aが必要です。Map
したがって、要素番号が <= nになるまで、新しい要素は単純にマップに配置されます。
要素番号 > nの場合、最初に挿入された要素が削除され、最新の要素がマップに配置されます。
Javaにも似たようなものがありますか、それとも実装する必要がありますか?
私は側にいるので、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());
}
}
}
Entry クラスに問題があると思われる Google App Engine でも動作します。