Class IndexedStack<T>

java.lang.Object
net.sf.saxon.tree.util.IndexedStack<T>
All Implemented Interfaces:
Iterable<T>

public class IndexedStack<T> extends Object implements Iterable<T>
This class replicates functionality that is available in a Java Stack, but not in a C# Stack, for example the ability to access elements by direct index (0-based, counting from the bottom of the stack). It is used in place of Stack in the few places where this functionality is needed.

The stack is iterable, and iteration is in bottom-to-top order (like Java, but unlike a C# stack where iteration is top-to-bottom)

  • Constructor Summary

    Constructors
    Constructor
    Description
    Create an empty stack with a default initial space allocation
    IndexedStack(int size)
    Create an empty stack with a specified initial space allocation
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    contains(T value)
    Search for an item on the stack
    get(int i)
    Get the item at position N in the stack, without changing the state of the stack
    int
    indexOf(T value)
    Search for an item on the stack, starting from the bottom
    boolean
    Ask if the stack is empty
    Iterate the stack in bottom to top order
    Get the item on the top of the stack, without changing the state of the stack
    pop()
    Get the item on the top of the stack, and remove it from the stack
    void
    push(T item)
    Add an item to the top of the stack
    void
    set(int i, T value)
    Overwrite the item at position N in the stack
    int
    Get the current height of the stack

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Constructor Details

    • IndexedStack

      public IndexedStack()
      Create an empty stack with a default initial space allocation
    • IndexedStack

      public IndexedStack(int size)
      Create an empty stack with a specified initial space allocation
      Parameters:
      size - the number of entries to be allocated
  • Method Details

    • size

      public int size()
      Get the current height of the stack
      Returns:
      the number of items on the stack
    • isEmpty

      public boolean isEmpty()
      Ask if the stack is empty
      Returns:
      true if the stack contains no items
    • push

      public void push(T item)
      Add an item to the top of the stack
      Parameters:
      item - the item to be added
    • peek

      public T peek()
      Get the item on the top of the stack, without changing the state of the stack
      Returns:
      the topmost item
      Throws:
      EmptyStackException - if the stack is empty
    • pop

      public T pop()
      Get the item on the top of the stack, and remove it from the stack
      Returns:
      the topmost item
      Throws:
      EmptyStackException - if the stack is empty
    • get

      public T get(int i)
      Get the item at position N in the stack, without changing the state of the stack
      Parameters:
      i - the position of the required item, where the first item counting from the bottom of the stack is position 0 (zero)
      Returns:
      the item at the specified position
      Throws:
      IndexOutOfBoundsException - if i is negative, or greater than or equal to the stack size
    • set

      public void set(int i, T value)
      Overwrite the item at position N in the stack
      Parameters:
      i - the position of the required item, where the first item counting from the bottom of the stack is position 0 (zero)
      value - the item to be put at the specified position
      Throws:
      IndexOutOfBoundsException - if i is negative, or greater than or equal to the stack size
    • contains

      public boolean contains(T value)
      Search for an item on the stack
      Parameters:
      value - the item being sought
      Returns:
      true if the stack contains an item equal to the sought item
    • indexOf

      public int indexOf(T value)
      Search for an item on the stack, starting from the bottom
      Parameters:
      value - the item being sought
      Returns:
      the index position of the first item found that is equal to value, or -1 if no such item is found
    • iterator

      public Iterator<T> iterator()
      Iterate the stack in bottom to top order
      Specified by:
      iterator in interface Iterable<T>
      Returns:
      an iterator that starts at the bottom of the stack and proceeds to the top