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 and Description
    `ArrayStack()` Constructs a new empty `ArrayStack`.
    `ArrayStack(int initialSize)` Constructs a new empty `ArrayStack` with an initial size.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeRange, retainAll, set, size, subList, toArray, toArray, trimToSize`

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

      `equals, hashCode`

    - ### 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.List

      `containsAll, equals, hashCode`

- - ### 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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.