ArrayStack (Apache Tomcat 10.1.14 API Documentation)

Package org.apache.tomcat.util.digester

## Class ArrayStack<E>

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractList<E>
    - - java.util.ArrayList<E>
      - - org.apache.tomcat.util.digester.ArrayStack<E>

- Type Parameters:
    `E` - Type of object in this stack
  All Implemented Interfaces:
    `Serializable`, `Cloneable`, `Iterable<E>`, `Collection<E>`, `List<E>`, `RandomAccess`

      public class ArrayStack<E>
      extends ArrayList<E>

  Imported copy of the `ArrayStack` class from Commons Collections, which was the only direct dependency from Digester.

  WARNING - This class is public solely to allow it to be used from subpackages of `org.apache.commons.digester`. It should not be considered part of the public API of Commons Digester. If you want to use such a class yourself, you should use the one from Commons Collections directly.

  An implementation of the `Stack` API that is based on an `ArrayList` instead of a `Vector`, so it is not synchronized to protect against multi-threaded access. The implementation is therefore operates faster in environments where you do not need to worry about multiple thread contention.

  Unlike `Stack`, `ArrayStack` accepts null entries.

  Since:
    Digester 1.6 (from Commons Collections 1.0)
  See Also:
    `Stack`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class java.util.AbstractList

      `modCount`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ArrayStack()` | Constructs a new empty `ArrayStack`.
    `ArrayStack​(int initialSize)` | Constructs a new empty `ArrayStack` with an initial size.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `empty()` | Return `true` if this stack is currently empty.
    `E` | `peek()` | Returns the top item off of this stack without removing it.
    `E` | `peek​(int n)` | Returns the n'th item down (zero-relative) from the top of this stack without removing it.
    `E` | `pop()` | Pops the top item off of this stack and return it.
    `E` | `push​(E item)` | Pushes a new item onto the top of this stack.

    - ### Methods inherited from class java.util.ArrayList

      `add, add, addAll, addAll, clear, clone, contains, ensureCapacity, equals, forEach, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize`

    - ### Methods inherited from class java.util.AbstractCollection

      `containsAll, toString`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, stream, toArray`

    - ### Methods inherited from interface java.util.List

      `containsAll`

- - ### Constructor Detail

    - #### ArrayStack

          public ArrayStack()

      Constructs a new empty `ArrayStack`. The initial size is controlled by `ArrayList` and is currently 10.

    - #### ArrayStack

          public ArrayStack​(int initialSize)

      Constructs a new empty `ArrayStack` with an initial size.
      Parameters:
        `initialSize` - the initial size to use
      Throws:
        `IllegalArgumentException` - if the specified initial size is negative

  - ### Method Detail

    - #### empty

          public boolean empty()

      Return `true` if this stack is currently empty.

      This method exists for compatibility with `java.util.Stack`. New users of this class should use `isEmpty` instead.

      Returns:
        true if the stack is currently empty

    - #### peek

          public E peek()
                 throws EmptyStackException

      Returns the top item off of this stack without removing it.
      Returns:
        the top item on the stack
      Throws:
        `EmptyStackException` - if the stack is empty

    - #### peek

          public E peek​(int n)
                 throws EmptyStackException

      Returns the n'th item down (zero-relative) from the top of this stack without removing it.
      Parameters:
        `n` - the number of items down to go
      Returns:
        the n'th item on the stack, zero relative
      Throws:
        `EmptyStackException` - if there are not enough items on the stack to satisfy this request

    - #### pop

          public E pop()
                throws EmptyStackException

      Pops the top item off of this stack and return it.
      Returns:
        the top item on the stack
      Throws:
        `EmptyStackException` - if the stack is empty

    - #### push

          public E push​(E item)

      Pushes a new item onto the top of this stack. The pushed item is also returned. This is equivalent to calling `add`.
      Parameters:
        `item` - the item to be added
      Returns:
        the item just pushed