Package com.ibm.wala.util.collections
Class ImmutableStack<T>
- java.lang.Object
-
- com.ibm.wala.util.collections.ImmutableStack<T>
-
- Type Parameters:
T
-
- All Implemented Interfaces:
java.lang.Iterable<T>
public class ImmutableStack<T> extends java.lang.Object implements java.lang.Iterable<T>
An immutable stack of objects. Thepush(Object)
andpop()
operations create new stacks.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ImmutableStack(T[] entries)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
contains(T entry)
static <T> ImmutableStack<T>
emptyStack()
boolean
equals(java.lang.Object o)
T
get(int i)
static int
getMaxSize()
int
hashCode()
boolean
isEmpty()
java.util.Iterator<T>
iterator()
protected T[]
makeInternalArray(int size)
protected ImmutableStack<T>
makeStack(T[] tmpEntries)
T
peek()
ImmutableStack<T>
pop()
ImmutableStack<T>
popAll(ImmutableStack<T> other)
ImmutableStack<T>
push(T entry)
ImmutableStack<T>
pushAll(ImmutableStack<T> other)
ImmutableStack<T>
replaceTop(T t)
return a new stack with the top replaced with tImmutableStack<T>
reverse()
int
size()
boolean
topMatches(ImmutableStack<T> other)
java.lang.String
toString()
-
-
-
Constructor Detail
-
ImmutableStack
protected ImmutableStack(T[] entries)
-
-
Method Detail
-
getMaxSize
public static int getMaxSize()
-
emptyStack
public static final <T> ImmutableStack<T> emptyStack()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
push
public ImmutableStack<T> push(T entry)
-
makeInternalArray
protected T[] makeInternalArray(int size)
-
makeStack
protected ImmutableStack<T> makeStack(T[] tmpEntries)
-
peek
public T peek()
- Returns:
- the element on the top of the stack
- Throws:
java.util.EmptyStackException
- if stack is empty
-
pop
public ImmutableStack<T> pop()
- Throws:
java.util.EmptyStackException
- if stack is empty
-
isEmpty
public boolean isEmpty()
-
size
public int size()
-
get
public T get(int i)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
contains
public boolean contains(T entry)
-
topMatches
public boolean topMatches(ImmutableStack<T> other) throws java.lang.IllegalArgumentException
- Returns:
true
iffother.size() = k
,k <= this.size()
, and the top k elements of this equal other- Throws:
java.lang.IllegalArgumentException
- if other == null
-
reverse
public ImmutableStack<T> reverse()
-
popAll
public ImmutableStack<T> popAll(ImmutableStack<T> other)
-
pushAll
public ImmutableStack<T> pushAll(ImmutableStack<T> other)
-
iterator
public java.util.Iterator<T> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<T>
-
replaceTop
public ImmutableStack<T> replaceTop(T t)
return a new stack with the top replaced with t- Throws:
java.util.EmptyStackException
-
-