Class ArrayList<E>

  • All Implemented Interfaces:
    IndexedList<E>, Iterable<E>, List<E>, Traversable<E>, java.lang.Iterable<E>

    public class ArrayList<E>
    extends AbstractIndexedList<E>
    ArrayList is an IndexedList implementation backed by an array.

    WARNING: All modifications copy the entire backing array. ArrayLists should only be used where modifications are infrequent and access times are critical. ArrayList is also compact in memory usage, so may be appropriate for small lists. If there is any doubt regarding access patterns for a List then use a Vector instead.

    • Field Detail

      • EMPTY

        private static final ArrayList<java.lang.Object> EMPTY
      • elements

        private final java.lang.Object[] elements
    • Constructor Detail

      • ArrayList

        public ArrayList()
      • ArrayList

        ArrayList​(java.lang.Object[] elements)
    • Method Detail

      • empty

        public static <E> ArrayList<E> empty()
      • set

        @NotNull
        public @NotNull ArrayList<E> set​(int i,
                                         E elem)
        Description copied from interface: List
        Returns a list with the element set to the value specified at the index (zero-based).
      • append

        @NotNull
        public @NotNull ArrayList<E> append​(E elem)
        Description copied from interface: List
        Returns a list with the specified element appended to the bottom of the list.
      • prepend

        @NotNull
        public @NotNull ArrayList<E> prepend​(E elem)
        Description copied from interface: List
        Returns a list with the specified element prepended to the top of the list.
      • drop

        @NotNull
        public @NotNull ArrayList<E> drop​(int number)
        Description copied from interface: List
        Returns a list containing all elements in this list, excluding the first number of elements.
      • take

        @NotNull
        public @NotNull ArrayList<E> take​(int number)
        Description copied from interface: List
        Returns a list containing the first number of elements from this list.
      • range

        @NotNull
        public @NotNull ArrayList<E> range​(int from,
                                           boolean fromInclusive,
                                           int to,
                                           boolean toInclusive)
        Description copied from interface: List
        Returns a list containing a contiguous range of elements from this list.
        Parameters:
        from - starting index for the range (zero-based)
        fromInclusive - if true, the element at the from index will be included
        to - end index for the range (zero-based)
        toInclusive - if true, the element at the to index will be included
      • get

        public E get​(int i)
        Description copied from interface: List
        Returns the element at the specified index in this list (zero-based).
      • first

        @Nullable
        public E first()
        Description copied from interface: List
        Returns first element in the list or null if the list is empty.
      • last

        @Nullable
        public E last()
        Description copied from interface: List
        Returns last element in the list or null if the list is empty.
      • tail

        @NotNull
        public @NotNull List<E> tail()
        Description copied from interface: List
        Returns a list containing all elements in the list, excluding the first element. An empty list is returned if the list is empty.
      • iterator

        @NotNull
        public @NotNull java.util.Iterator<E> iterator()
      • size

        public int size()
        Description copied from interface: Traversable
        Returns the size of the collection.

        Warning: infinite collections are possible, as are collections that require traversal to calculate the size.

        Specified by:
        size in interface Traversable<E>
        Overrides:
        size in class AbstractTraversable<E>