Class ObjectStack<KType>

    • Constructor Detail

      • ObjectStack

        public ObjectStack()
        New instance with sane defaults.
      • ObjectStack

        public ObjectStack​(int expectedElements)
        New instance with sane defaults.
        Parameters:
        expectedElements - The expected number of elements guaranteed not to cause buffer expansion (inclusive).
      • ObjectStack

        public ObjectStack​(int expectedElements,
                           ArraySizingStrategy resizer)
        New instance with sane defaults.
        Parameters:
        expectedElements - The expected number of elements guaranteed not to cause buffer expansion (inclusive).
        resizer - Underlying buffer sizing strategy.
      • ObjectStack

        public ObjectStack​(ObjectContainer<KType> container)
        Create a stack by pushing all elements of another container to it.
    • Method Detail

      • push

        public void push​(KType e1)
        Adds one Object to the stack.
      • push

        public void push​(KType e1,
                         KType e2)
        Adds two Objects to the stack.
      • push

        public void push​(KType e1,
                         KType e2,
                         KType e3)
        Adds three Objects to the stack.
      • push

        public void push​(KType e1,
                         KType e2,
                         KType e3,
                         KType e4)
        Adds four Objects to the stack.
      • push

        public void push​(KType[] elements,
                         int start,
                         int len)
        Add a range of array elements to the stack.
      • push

        @SafeVarargs
        public final void push​(KType... elements)
        Vararg-signature method for pushing elements at the top of the stack.

        This method is handy, but costly if used in tight loops (anonymous array passing)

      • pushAll

        public int pushAll​(ObjectContainer<? extends KType> container)
        Pushes all elements from another container to the top of the stack.
      • pushAll

        public int pushAll​(java.lang.Iterable<? extends ObjectCursor<? extends KType>> iterable)
        Pushes all elements from another iterable to the top of the stack.
      • discard

        public void discard​(int count)
        Discard an arbitrary number of elements from the top of the stack.
      • discard

        public void discard()
        Discard the top element from the stack.
      • pop

        public KType pop()
        Remove the top element from the stack and return it.
      • peek

        public KType peek()
        Peek at the top element on the stack.
      • from

        @SafeVarargs
        public static <KType> ObjectStack<KType> from​(KType... elements)
        Create a stack by pushing a variable number of arguments to it.
      • removeAll

        public int removeAll​(ObjectLookupContainer<? super KType> c)
        Default implementation uses a predicate for removal.
        Specified by:
        removeAll in interface ObjectCollection<KType>
        Returns:
        Returns the number of removed elements.
      • retainAll

        public int retainAll​(ObjectLookupContainer<? super KType> c)
        Default implementation uses a predicate for retaining.
        Specified by:
        retainAll in interface ObjectCollection<KType>
        Returns:
        Returns the number of removed elements.
      • toArray

        public <T> T[] toArray​(java.lang.Class<T> componentClass)
        Description copied from interface: ObjectContainer
        Copies all elements of this container to a dynamically created array of the given component type.
        Specified by:
        toArray in interface ObjectContainer<KType>
      • toString

        public java.lang.String toString()
        Convert the contents of this container to a human-friendly string.
        Overrides:
        toString in class java.lang.Object
      • equals

        protected boolean equals​(java.lang.Object v1,
                                 java.lang.Object v2)