JUtil

net.cscott.jutil
Class UniqueStack<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by net.cscott.jutil.UniqueVector<E>
              extended by net.cscott.jutil.UniqueStack<E>
All Implemented Interfaces:
Cloneable, Iterable<E>, Collection<E>, List<E>, Set<E>

public class UniqueStack<E>
extends UniqueVector<E>

The UniqueStack class represents a last-in-first-out stack of unique objects.

Conforms to the JDK 1.2 Collections API.

Version:
$Id: UniqueStack.java,v 1.3 2006-10-30 19:58:07 cananian Exp $
Author:
C. Scott Ananian

Field Summary
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
UniqueStack()
          Creates a UniqueStack.
UniqueStack(Collection<? extends E> c)
          Constructs a UniqueStack containing the elements of the specified Collection, in the order they are returned by the collection's iterator in LIFO order.
 
Method Summary
 boolean empty()
          Tests if this stack is empty.
 E peek()
          Looks at the object at the top of this stack without removing it from the stack.
 E pop()
          Removes the object at the top of this stack and returns that object as the value of this function.
 void push(E item)
          Pushes an item onto the top of this stack, if it is unique.
 int search(Object o)
          Returns where an object is on this stack.
 
Methods inherited from class net.cscott.jutil.UniqueVector
add, add, addElement, capacity, clear, clone, contains, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, lastElement, lastIndexOf, lastIndexOf, remove, removeAllElements, removeElement, removeElementAt, set, setElementAt, size, toArray, toArray, toString, trimToSize
 
Methods inherited from class java.util.AbstractList
addAll, iterator, listIterator, listIterator, removeRange, subList
 
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, remove, removeAll, retainAll
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Set
addAll, containsAll, iterator, remove, removeAll, retainAll
 
Methods inherited from interface java.util.List
addAll, containsAll, remove, removeAll, retainAll
 

Constructor Detail

UniqueStack

public UniqueStack()
Creates a UniqueStack.


UniqueStack

public UniqueStack(Collection<? extends E> c)
Constructs a UniqueStack containing the elements of the specified Collection, in the order they are returned by the collection's iterator in LIFO order. That is, the first item returned by the collection iterator will be at the bottom of the stack, and thus last to be popped. Duplicate elements in c are skipped.

Method Detail

push

public void push(E item)
Pushes an item onto the top of this stack, if it is unique. Otherwise, does nothing.

Parameters:
item - the item to be pushed onto this stack.

pop

public E pop()
Removes the object at the top of this stack and returns that object as the value of this function.

Returns:
The object at the top of this stack.
Throws:
EmptyStackException - if this empty.

peek

public E peek()
Looks at the object at the top of this stack without removing it from the stack.

Returns:
the object at the top of this stack.
Throws:
EmptyStackException - if this stack is empty.

empty

public boolean empty()
Tests if this stack is empty.

Returns:
true if this stack is empty; false otherwise.

search

public int search(Object o)
Returns where an object is on this stack.

Parameters:
o - the desired object.
Returns:
the distance from the top of the stack where the object is located; the return value -1 indicates that the object is not on the stack.

JUtil

Copyright (c) 2006 C. Scott Ananian