一意の値を持つ Java LIFO 構造を探しています。さらに、再挿入時にすでに挿入された値を前面に昇格させる必要があります。たとえば、フォーカスされたウィンドウの順序を追跡すると便利です。
Stack
orを拡張または使用して実装するのはそれほど難しいことではないことはわかっていますLinkedHashSet
が、標準 Java クラスの既存の実装を見逃している可能性があります。
私が知っているわけではありませんが、これでうまくいきます:
class ReinsertionStack<E> extends Stack<E> {
@Override
public E push(E item) {
this.remove(item);
return super.push(item);
}
}
これにより、 を介してスタックに追加するだけである限り、一意性も保証されますpush()
。
あなたが望むのは Stack クラスhttp://docs.oracle.com/javase/1.5.0/docs/api/java/util/Stack.htmlだと思います
あなたに興味があるかもしれない方法:
pop() このスタックの一番上にあるオブジェクトを削除し、そのオブジェクトをこの関数の値として返します。
E push(E item) アイテムをこのスタックの一番上にプッシュします。
その助けを願っています。
search メソッドを使用すると、既に挿入されているオブジェクトを簡単に処理できます