org.apache.commons.collections

Class ArrayStack

Implemented Interfaces:
Buffer, Collection

public class ArrayStack
extends ArrayList
implements Buffer

An implementation of the java.util.Stack API that is based on an ArrayList instead of a Vector, so it is not synchronized to protect against multi-threaded access. The implementation is therefore operates faster in environments where you do not need to worry about multiple thread contention.

The removal order of an ArrayStack is based on insertion order: The most recently added element is removed first. The iteration order is not the same as the removal order. The iterator returns elements from the bottom up, whereas the remove() method removes them from the top down.

Unlike Stack, ArrayStack accepts null entries.

Note: this class should be bytecode-identical to the version in commons collections. This is required to allow backwards compability with both previous versions of BeanUtils and also allow coexistance with both collections 2.1 and 3.0.

Version:
$Revision: 1.1 $ $Date: 2004/05/10 19:50:13 $
Authors:
Craig R. McClanahan
Paul Jack
Stephen Colebourne
Since:
Commons Collections 1.0
See Also:
java.util.Stack

Field Summary

private static long
serialVersionUID
Ensure serialization compatibility

Constructor Summary

ArrayStack()
Constructs a new empty ArrayStack.
ArrayStack(int initialSize)
Constructs a new empty ArrayStack with an initial size.

Method Summary

boolean
empty()
Return true if this stack is currently empty.
Object
get()
Returns the element on the top of the stack.
Object
peek()
Returns the top item off of this stack without removing it.
Object
peek(int n)
Returns the n'th item down (zero-relative) from the top of this stack without removing it.
Object
pop()
Pops the top item off of this stack and return it.
Object
push(Object item)
Pushes a new item onto the top of this stack.
Object
remove()
Removes the element on the top of the stack.
int
search(Object object)
Returns the one-based position of the distance from the top that the specified object exists on this stack, where the top-most element is considered to be at distance 1.

Field Details

serialVersionUID

private static final long serialVersionUID
Ensure serialization compatibility
Field Value:
2130079159931574599L

Constructor Details

ArrayStack

public ArrayStack()
Constructs a new empty ArrayStack. The initial size is controlled by ArrayList and is currently 10.

ArrayStack

public ArrayStack(int initialSize)
Constructs a new empty ArrayStack with an initial size.
Parameters:
initialSize - the initial size to use

Method Details

empty

public boolean empty()
Return true if this stack is currently empty.

This method exists for compatibility with java.util.Stack. New users of this class should use isEmpty instead.

Returns:
true if the stack is currently empty

get

public Object get()
Returns the element on the top of the stack.
Specified by:
get in interface Buffer
Returns:
the element on the top of the stack

peek

public Object peek()
            throws EmptyStackException
Returns the top item off of this stack without removing it.
Returns:
the top item on the stack

peek

public Object peek(int n)
            throws EmptyStackException
Returns the n'th item down (zero-relative) from the top of this stack without removing it.
Parameters:
n - the number of items down to go
Returns:
the n'th item on the stack, zero relative

pop

public Object pop()
            throws EmptyStackException
Pops the top item off of this stack and return it.
Returns:
the top item on the stack

push

public Object push(Object item)
Pushes a new item onto the top of this stack. The pushed item is also returned. This is equivalent to calling add.
Parameters:
item - the item to be added
Returns:
the item just pushed

remove

public Object remove()
Removes the element on the top of the stack.
Specified by:
remove in interface Buffer
Returns:
the removed element

search

public int search(Object object)
Returns the one-based position of the distance from the top that the specified object exists on this stack, where the top-most element is considered to be at distance 1. If the object is not present on the stack, return -1 instead. The equals() method is used to compare to the items in this stack.
Parameters:
object - the object to be searched for
Returns:
the 1-based depth into the stack of the object, or -1 if not found

Copyright (c) 2001-2004 - Apache Software Foundation