3

一意の値を持つ Java LIFO 構造を探しています。さらに、再挿入時にすでに挿入された値を前面に昇格させる必要があります。たとえば、フォーカスされたウィンドウの順序を追跡すると便利です。

Stackorを拡張または使用して実装するのはそれほど難しいことではないことはわかっていますLinkedHashSetが、標準 Java クラスの既存の実装を見逃している可能性があります。

4

2 に答える 2

2

私が知っているわけではありませんが、これでうまくいきます:

class ReinsertionStack<E> extends Stack<E> {
    @Override
    public E push(E item) {
        this.remove(item);
        return super.push(item);
    }
}

これにより、 を介してスタックに追加するだけである限り、一意性も保証されますpush()

于 2014-07-08T11:32:34.390 に答える
0

あなたが望むのは Stack クラスhttp://docs.oracle.com/javase/1.5.0/docs/api/java/util/Stack.htmlだと思います

あなたに興味があるかもしれない方法:

pop() このスタックの一番上にあるオブジェクトを削除し、そのオブジェクトをこの関数の値として返します。

E push(E item) アイテムをこのスタックの一番上にプッシュします。

その助けを願っています。

search メソッドを使用すると、既に挿入されているオブジェクトを簡単に処理できます

于 2014-07-08T11:32:18.553 に答える