17

FIFOキューのように機能する固定数の要素 ( n )を持つ aHashMapまたは simpy aが必要です。Map

したがって、要素番号が <= nになるまで、新しい要素は単純にマップに配置されます。

要素番号 > nの場合、最初に挿入された要素が削除され、最新の要素がマップに配置されます。

Javaにも似たようなものがありますか、それとも実装する必要がありますか?

4

2 に答える 2

3

私は側にいるので、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 でも動作します。

于 2016-04-11T14:37:46.027 に答える