org.pentaho.reporting.libraries.base.util

Class FastStack

public final class FastStack extends Object implements Serializable, Cloneable

A very simple unsynchronized stack. This one is faster than the java.util-Version, which is based on the synchronized java.util.Vector class.

Author: Thomas Morgner

Constructor Summary
FastStack()
Creates a new stack with an initial size and growth of 10 items.
FastStack(int size)
Creates a new stack with an initial size and growth as specified.
Method Summary
voidclear()
Removes all contents from the stack.
Objectclone()
Creates a shallow copy of the stack.
Objectget(int index)
Returns the element from the stack at the given index-position.
booleanisEmpty()
Checks whether the stack is empty.
Objectpeek()
Loads the top-most element from the stack, without removing it from the stack.
Objectpop()
Loads the top-most element from the stack and removes it from the stack at the same time.
voidpush(Object o)
Pushes a new object on the stack.
intsize()
Returns the number of elements in the stack.

Constructor Detail

FastStack

public FastStack()
Creates a new stack with an initial size and growth of 10 items.

FastStack

public FastStack(int size)
Creates a new stack with an initial size and growth as specified.

Parameters: size the initial size and growth.

Method Detail

clear

public void clear()
Removes all contents from the stack.

clone

public Object clone()
Creates a shallow copy of the stack.

Returns: the cloned stack.

get

public Object get(int index)
Returns the element from the stack at the given index-position.

Parameters: index the element's index.

Returns: the object.

Throws: IndexOutOfBoundsException if the index given is greater than the number of objects in the stack.

isEmpty

public boolean isEmpty()
Checks whether the stack is empty.

Returns: true, if the stack is empty, false otherwise.

peek

public Object peek()
Loads the top-most element from the stack, without removing it from the stack.

Returns: the top-most object.

Throws: EmptyStackException if the stack is empty.

pop

public Object pop()
Loads the top-most element from the stack and removes it from the stack at the same time.

Returns: the top-most object.

Throws: EmptyStackException if the stack is empty.

push

public void push(Object o)
Pushes a new object on the stack. Null-references are allowed.

Parameters: o the object, maybe null.

size

public int size()
Returns the number of elements in the stack.

Returns: the stack size.