Class NullUnlimitedList<T>

  • Type Parameters:
    T - elements of the list
    All Implemented Interfaces:
    ISimpleList<T>

    public final class NullUnlimitedList<T>
    extends java.lang.Object
    implements ISimpleList<T>
    The class represents a list which allows null elements, but doesn't allocate a memory for them, in the rest of cases it behaves like usual ArrayList and should have the same complexity (because keys are unique integers, so collisions are impossible).
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Map<java.lang.Integer,​T> map  
      private int size  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(int index, T element)
      Adds an element to the list at the specified index.
      void add​(T element)
      Adds an element to the end of the list.
      T get​(int index)
      Returns the element at the specified index.
      int indexOf​(java.lang.Object element)
      Returns the index of the first occurrence of the specified element in the list, or -1 if the list does not contain the element.
      boolean isEmpty()
      Returns true if the list contains no elements, false otherwise.
      void remove​(int index)
      In worth scenario O(n^2) but it is mostly impossible because keys shouldn't have collisions at all (they are integers).
      T set​(int index, T element)
      Replaces the element at the specified index with the specified element.
      int size()
      Returns the number of elements in the list.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • map

        private final java.util.Map<java.lang.Integer,​T> map
      • size

        private int size
    • Constructor Detail

      • NullUnlimitedList

        public NullUnlimitedList()
        Creates a new instance of NullUnlimitedList.
    • Method Detail

      • add

        public void add​(T element)
        Adds an element to the end of the list.
        Specified by:
        add in interface ISimpleList<T>
        Parameters:
        element - the element to add
      • add

        public void add​(int index,
                        T element)
        Adds an element to the list at the specified index. In worth scenario O(n^2) but it is mostly impossible because keys shouldn't have collisions at all (they are integers). So in average should be O(n).
        Specified by:
        add in interface ISimpleList<T>
        Parameters:
        index - the index at which to add the element
        element - the element to add
      • get

        public T get​(int index)
        Returns the element at the specified index. average O(1), worth O(n) (mostly impossible in case when keys are integers)
        Specified by:
        get in interface ISimpleList<T>
        Parameters:
        index - the index of the element to return
        Returns:
        the element at the specified index
      • set

        public T set​(int index,
                     T element)
        Replaces the element at the specified index with the specified element. average O(1), worth O(n) (mostly impossible in case when keys are integers)
        Specified by:
        set in interface ISimpleList<T>
        Parameters:
        index - the index of the element to replace
        element - the element to be stored at the specified index
        Returns:
        the element previously at the specified index
      • indexOf

        public int indexOf​(java.lang.Object element)
        Returns the index of the first occurrence of the specified element in the list, or -1 if the list does not contain the element.
        Specified by:
        indexOf in interface ISimpleList<T>
        Parameters:
        element - the element to search for
        Returns:
        the index of the first occurrence of the specified element in the list, or -1 if the list does not contain the element
      • remove

        public void remove​(int index)
        In worth scenario O(n^2) but it is mostly impossible because keys shouldn't have collisions at all (they are integers). So in average should be O(n).
        Specified by:
        remove in interface ISimpleList<T>
        Parameters:
        index - the index of the element to be removed
      • size

        public int size()
        Description copied from interface: ISimpleList
        Returns the number of elements in the list.
        Specified by:
        size in interface ISimpleList<T>
        Returns:
        the size of the list
      • isEmpty

        public boolean isEmpty()
        Description copied from interface: ISimpleList
        Returns true if the list contains no elements, false otherwise.
        Specified by:
        isEmpty in interface ISimpleList<T>
        Returns:
        true if the list is empty, false otherwise