public class ObjectStack
extends java.lang.Object
implements java.lang.Cloneable
ObjectStack
is a stack of references to objects.
Limitations:
(1) The capacity of one of these stacks can change after it's created, but
the maximum capacity is limited by the amount of free memory on the
machine. The constructor, ensureCapacity
, push
,
and trimToSize
will result in an
OutOfMemoryError
when free memory is exhausted.
(2) A stack's capacity cannot exceed the maximum integer 2,147,483,647
(Integer.MAX_VALUE
). Any attempt to create a larger capacity
results in a failure due to an arithmetic overflow.
Java Source Code for this class:
http://www.cs.colorado.edu/~main/edu/colorado/collections/ObjectStack.java
ObjectLinkedStack
,
BooleanStack
,
ByteStack
,
CharStack
,
DoubleStack
,
FloatStack
,
IntStack
,
LongStack
,
ShortStack
Constructor and Description |
---|
ObjectStack()
Initialize an empty stack with an initial capacity of 10.
|
ObjectStack(int initialCapacity)
Initialize an empty stack with a specified initial capacity.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone()
Generate a copy of this stack.
|
void |
ensureCapacity(int minimumCapacity)
Change the current capacity of this stack.
|
int |
getCapacity()
Accessor method to get the current capacity of this stack.
|
boolean |
isEmpty()
Determine whether this stack is empty.
|
java.lang.Object |
peek()
Get the top item of this stack, without removing the item.
|
java.lang.Object |
pop()
Get the top item, removing it from this stack.
|
void |
push(java.lang.Object item)
Push a new item onto this stack.
|
int |
size()
Accessor method to determine the number of items in this stack.
|
void |
trimToSize()
Reduce the current capacity of this stack to its actual size (i.e., the
number of items it contains).
|
public ObjectStack()
push
method works efficiently (without needing more
memory) until this capacity is reached.
Postcondition:
This stack is empty and has an initial capacity of 10.java.lang.OutOfMemoryError
- Indicates insufficient memory for:
new Object[10]
.public ObjectStack(int initialCapacity)
push
method works efficiently (without needing more
memory) until this capacity is reached.initialCapacity
- the initial capacity of this stack
Precondition:
initialCapacity
is non-negative.
Postcondition:
This stack is empty and has the given initial capacity.java.lang.IllegalArgumentException
- Indicates that initialCapacity is negative.java.lang.OutOfMemoryError
- Indicates insufficient memory for:
new Object[initialCapacity]
.public java.lang.Object clone()
clone
in class java.lang.Object
ObjectStack
before it can be used.java.lang.OutOfMemoryError
- Indicates insufficient memory for creating the clone.public void ensureCapacity(int minimumCapacity)
minimumCapacity
- the new capacity for this stack
Postcondition:
This stack's capacity has been changed to at least minimumCapacity
.
If the capacity was already at or greater than minimumCapacity
,
then the capacity is left unchanged.java.lang.OutOfMemoryError
- Indicates insufficient memory for: new Object[minimumCapacity]
.public int getCapacity()
push
method works efficiently (without needing
more memory) until this capacity is reached.public boolean isEmpty()
true
if this stack is empty;
false
otherwise.public java.lang.Object peek()
java.util.EmptyStackException
- Indicates that this stack is empty.public java.lang.Object pop()
java.util.EmptyStackException
- Indicates that this stack is empty.public void push(java.lang.Object item)
item
- the item to be pushed onto this stack
Postcondition:
The item has been pushed onto this stack.java.lang.OutOfMemoryError
- Indicates insufficient memory for increasing the stack's capacity.
Note:
An attempt to increase the capacity beyond
Integer.MAX_VALUE
will cause the stack to fail with an
arithmetic overflow.public int size()
public void trimToSize()
java.lang.OutOfMemoryError
- Indicates insufficient memory for altering the capacity.