2014-07-08 4 views
3

고유 한 값을 가진 Java LIFO 구조를 찾고 있습니다. 또한 재 삽입시 이미 삽입 된 가치를 홍보해야합니다. 집중 윈도우의 순서를 추적하는 것이 유용 할 것입니다.재 삽입시 push-to-use가 가능한 Java Lifo 클래스 (스택)가 있습니까?

Stack 또는 LinkedHashSet을 확장하거나 사용하여 구현하는 것이 어렵지 않다는 것을 알고 있지만, 표준 Java 클래스에서 이미 구현 된 것을 이미 놓친 것 같습니다. (

팝)의 값으로 객체를이 스택 및 반환의 상단에있는 오브젝트를 삭제 :

+0

고유 값을 가지며 여전히 정렬되어 있으므로 순서가 지정된 집합이이 집합보다 더 낫습니다. 다시 삽입 된 요소를 처음 시작할 때 얼마나 힘들지는 모르겠다. – kajacx

답변

2

하지 이미 삽입 된 개체를 처리하는 쉬운 방법을 제공 할 수 있지만,이 트릭을 할 것입니다 단지 push()을 통해 스택에 추가하는 한.

+0

이것을 단순화하여'remove (item); 할 수는 없습니까? super.push (항목); '? – Ordous

+0

아니요, OP는 다시 삽입 할 때 앞쪽으로 밀고 싶었습니다. 그것은 뒤에서있을 것입니다. –

+3

스택의 앞부분이 무엇인지 매우 다른 아이디어가 있다고 생각합니다. – Ordous

0

나는 당신이 원하는 것은 Stack 클래스 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Stack.html

당신에게 관심을 가질만한 방법이라고 생각 이 함수.

E push (E item)이 스택의 맨 위에 항목을 넣습니다.

도움이 되길 바랍니다.

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

이것은 또한 유일성 보장 :

검색 방법은 당신에게 제가 알고 있다는