Package org.jibx.util
Class StringStack
- java.lang.Object
-
- org.jibx.util.StringStack
-
public class StringStack extends Object
GrowableStringstack with type specific access methods. This implementation is unsynchronized in order to provide the best possible performance for typical usage scenarios, so explicit synchronization must be implemented by a wrapper class or directly by the application in cases where instances are modified in a multithreaded environment.- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_SIZEDefault initial array size.
-
Constructor Summary
Constructors Constructor Description StringStack()Default constructor.StringStack(int size)Constructor with initial size specified.StringStack(int size, int growth)Constructor with full specification.StringStack(String[] strings)Constructor from array of strings.StringStack(StringStack base)Copy (clone) constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Set the stack to the empty state.Objectclone()Duplicates the object with the generic call.voidensureCapacity(int min)Ensure that the array has the capacity for at least the specified number of values.booleanisEmpty()Check if stack is empty.Stringpeek()Copy top value from the stack.Stringpeek(int depth)Copy a value from the stack.Stringpop()Pop a value from the stack.Stringpop(int count)Pop multiple values from the stack.voidpush(String value)Push a value on the stack.intsize()Get the number of values currently present in the stack.String[]toArray()Constructs and returns a simple array containing the same data as held in this stack.
-
-
-
Field Detail
-
DEFAULT_SIZE
public static final int DEFAULT_SIZE
Default initial array size.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
StringStack
public StringStack(int size, int growth)Constructor with full specification.- Parameters:
size- number ofStringvalues initially allowed in stackgrowth- maximum size increment for growing stack
-
StringStack
public StringStack(int size)
Constructor with initial size specified.- Parameters:
size- number ofStringvalues initially allowed in stack
-
StringStack
public StringStack()
Default constructor.
-
StringStack
public StringStack(StringStack base)
Copy (clone) constructor.- Parameters:
base- instance being copied
-
StringStack
public StringStack(String[] strings)
Constructor from array of strings.- Parameters:
strings- array of strings for initial contents
-
-
Method Detail
-
ensureCapacity
public final void ensureCapacity(int min)
Ensure that the array has the capacity for at least the specified number of values.- Parameters:
min- minimum capacity to be guaranteed
-
push
public void push(String value)
Push a value on the stack.- Parameters:
value- value to be added
-
pop
public String pop()
Pop a value from the stack.- Returns:
- value from top of stack
- Throws:
ArrayIndexOutOfBoundsException- on attempt to pop empty stack
-
pop
public String pop(int count)
Pop multiple values from the stack. The last value popped is the one returned.- Parameters:
count- number of values to pop from stack (must be strictly positive)- Returns:
- value from top of stack
- Throws:
ArrayIndexOutOfBoundsException- on attempt to pop past end of stack
-
peek
public String peek(int depth)
Copy a value from the stack. This returns a value from within the stack without modifying the stack.- Parameters:
depth- depth of value to be returned- Returns:
- value from stack
- Throws:
ArrayIndexOutOfBoundsException- on attempt to peek past end of stack
-
peek
public String peek()
Copy top value from the stack. This returns the top value without removing it from the stack.- Returns:
- value at top of stack
- Throws:
ArrayIndexOutOfBoundsException- on attempt to peek empty stack
-
toArray
public String[] toArray()
Constructs and returns a simple array containing the same data as held in this stack. Note that the items will be in reverse pop order, with the last item to be popped from the stack as the first item in the array.- Returns:
- array containing a copy of the data
-
clone
public Object clone()
Duplicates the object with the generic call.
-
size
public int size()
Get the number of values currently present in the stack.- Returns:
- count of values present
-
isEmpty
public boolean isEmpty()
Check if stack is empty.- Returns:
trueif stack empty,falseif not
-
clear
public void clear()
Set the stack to the empty state.
-
-