Klasse ImmutableObjectList<T>

Typparameter:
T - the keyType of elements maintained by this Collection
Alle implementierten Schnittstellen:
Iterable<T>, Collection<T>, List<T>, ObjectCollection<T>, ObjectIterable<T>, ObjectList<T>, ISizeProvider

public class ImmutableObjectList<T> extends AbstractObjectList<T>
A Type-Specific Immutable implementation of list that is written to reduce (un)boxing
  • Konstruktordetails

    • ImmutableObjectList

      public ImmutableObjectList(Collection<? extends T> c)
      Creates a new Immutable copy of the contents of the Collection.
      Parameter:
      c - the elements that should be added into the list
    • ImmutableObjectList

      public ImmutableObjectList(ObjectCollection<T> c)
      Creates a new Immutable copy of the contents of the Collection.
      Parameter:
      c - the elements that should be added into the list
    • ImmutableObjectList

      public ImmutableObjectList(ObjectList<T> l)
      Creates a new Immutable copy of the contents of the List.
      Parameter:
      l - the elements that should be added into the list
    • ImmutableObjectList

      public ImmutableObjectList(T... a)
      Creates a new Immutable copy of the contents of the Array.
      Parameter:
      a - the array that should be copied
    • ImmutableObjectList

      public ImmutableObjectList(T[] a, int length)
      Creates a new ImmutableList copy of the array with a custom length
      Parameter:
      a - the array that should be copied
      length - the desired length that should be copied
    • ImmutableObjectList

      public ImmutableObjectList(T[] a, int offset, int length)
      Creates a new ImmutableList copy of the array with in the custom range.
      Parameter:
      a - the array that should be copied
      offset - the starting offset of where the array should be copied from
      length - the desired length that should be copied
      Löst aus:
      IllegalStateException - if offset is smaller then 0
      IllegalStateException - if the offset + length exceeds the array length
  • Methodendetails

    • add

      public boolean add(T e)
      Beschreibung aus Klasse kopiert: AbstractObjectList
      A Type-Specific implementation of add function that delegates to List.add(int, Object)
      Angegeben von:
      add in Schnittstelle Collection<T>
      Angegeben von:
      add in Schnittstelle List<T>
      Setzt außer Kraft:
      add in Klasse AbstractObjectList<T>
    • add

      public void add(int index, T e)
    • addAll

      public boolean addAll(int index, Collection<? extends T> c)
    • addAll

      public boolean addAll(int index, ObjectCollection<T> c)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A Type-Specific addAll Function to reduce (un)boxing
      Parameter:
      index - index at which the specified elements is to be inserted
      c - the elements that need to be added
      Gibt zurück:
      true if the list was modified
      Siehe auch:
    • addAll

      public boolean addAll(int index, ObjectList<T> c)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A Type-Specific and optimized addAll function that allows a faster transfer of elements
      Parameter:
      index - index at which the specified elements is to be inserted
      c - the elements that need to be added
      Gibt zurück:
      true if the list was modified
    • addAll

      public boolean addAll(T[] e, int offset, int length)
      Beschreibung aus Schnittstelle kopiert: ObjectCollection
      A Type-Specific Array based addAll method to reduce the amount of Wrapping
      Parameter:
      e - the elements that should be added
      offset - where to start within the array
      length - how many elements of the array should be added
      Gibt zurück:
      if the collection was modified
    • addElements

      public void addElements(int from, T[] a, int offset, int length)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A function to fast add elements to the list
      Parameter:
      from - the index where the elements should be added into the list
      a - the elements that should be added
      offset - the start index of the array should be read from
      length - how many elements should be read from
    • getElements

      public T[] getElements(int from, T[] a, int offset, int length)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A function to fast fetch elements from the list
      Parameter:
      from - index where the list should be fetching elements from
      a - the array where the values should be inserted to
      offset - the startIndex of where the array should be written to
      length - the number of elements the values should be fetched from
      Gibt zurück:
      the inputArray
    • removeElements

      public void removeElements(int from, int to)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      a function to fast remove elements from the list.
      Parameter:
      from - the start index of where the elements should be removed from (inclusive)
      to - the end index of where the elements should be removed to (exclusive)
    • extractElements

      public <K> K[] extractElements(int from, int to, Class<K> type)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A function to fast extract elements out of the list, this removes the elements that were fetched.
      Typparameter:
      K - the keyType of elements maintained by this Collection
      Parameter:
      from - the start index of where the elements should be fetched from (inclusive)
      to - the end index of where the elements should be fetched to (exclusive)
      type - the type of the OutputArray
      Gibt zurück:
      a array of the elements that were fetched
    • contains

      public boolean contains(Object o)
      A function to find if the Element is present in this list.
      Angegeben von:
      contains in Schnittstelle Collection<T>
      Angegeben von:
      contains in Schnittstelle List<T>
      Setzt außer Kraft:
      contains in Klasse AbstractCollection<T>
      Parameter:
      o - the element that is searched for
      Gibt zurück:
      if the element was found.
    • indexOf

      public int indexOf(Object o)
      A function to find the index of a given element
      Angegeben von:
      indexOf in Schnittstelle List<T>
      Setzt außer Kraft:
      indexOf in Klasse AbstractObjectList<T>
      Parameter:
      o - the element that is searched for
      Gibt zurück:
      the index of the element if found. (if not found then -1)
    • lastIndexOf

      public int lastIndexOf(Object o)
      A function to find the last index of a given element
      Angegeben von:
      lastIndexOf in Schnittstelle List<T>
      Setzt außer Kraft:
      lastIndexOf in Klasse AbstractObjectList<T>
      Parameter:
      o - the element that is searched for
      Gibt zurück:
      the last index of the element if found. (if not found then -1)
    • sort

      public void sort(Comparator<? super T> c)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      Sorts the elements specified by the Natural order either by using the Comparator or the elements
      Siehe auch:
    • unstableSort

      public void unstableSort(Comparator<? super T> c)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      Sorts the elements specified by the Natural order either by using the Comparator or the elements using a unstable sort
      Parameter:
      c - the sorter of the elements, can be null
      Siehe auch:
    • get

      public T get(int index)
      A Type-Specific get function to reduce (un)boxing
      Parameter:
      index - the index of the element to fetch
      Gibt zurück:
      the value of the requested index
      Löst aus:
      IndexOutOfBoundsException - if the index is out of range
    • copy

      public ImmutableObjectList<T> copy()
      Beschreibung aus Schnittstelle kopiert: ObjectCollection
      A Function that does a shallow clone of the Collection itself. This function is more optimized then a copy constructor since the Collection does not have to be unsorted/resorted. It can be compared to Cloneable but with less exception risk
      Angegeben von:
      copy in Schnittstelle ObjectCollection<T>
      Angegeben von:
      copy in Schnittstelle ObjectList<T>
      Setzt außer Kraft:
      copy in Klasse AbstractObjectList<T>
      Gibt zurück:
      a Shallow Copy of the collection
    • forEach

      public void forEach(Consumer<? super T> action)
      A Type Specific foreach function that reduces (un)boxing
      Parameter:
      action - The action to be performed for each element
      Löst aus:
      NullPointerException - if the specified action is null
      Siehe auch:
      ImplSpec:

      The default implementation behaves as if:

      
       	for(int i = 0;i<size;i++)
       		action.accept(data[i]);
       
    • forEach

      public <E> void forEach(E input, ObjectObjectConsumer<E,T> action)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Helper function to reduce Lambda usage and allow for more method references, since these are faster/cleaner.
      Typparameter:
      E - the generic type of the Object
      Parameter:
      input - the object that should be included
      action - The action to be performed for each element
    • matchesAny

      public boolean matchesAny(Predicate<T> filter)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Helper function to reduce stream usage that allows to filter for any matches.
      Parameter:
      filter - that should be applied
      Gibt zurück:
      true if any matches were found
    • matchesNone

      public boolean matchesNone(Predicate<T> filter)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Helper function to reduce stream usage that allows to filter for no matches.
      Parameter:
      filter - that should be applied
      Gibt zurück:
      true if no matches were found
    • matchesAll

      public boolean matchesAll(Predicate<T> filter)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Helper function to reduce stream usage that allows to filter for all matches.
      Parameter:
      filter - that should be applied
      Gibt zurück:
      true if all matches.
    • findFirst

      public T findFirst(Predicate<T> filter)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Helper function to reduce stream usage that allows to filter for the first match.
      Parameter:
      filter - that should be applied
      Gibt zurück:
      the found value or the null equivalent variant.
    • reduce

      public <E> E reduce(E identity, BiFunction<E,T,E> operator)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Performs a reduction on the elements of this Iterable
      Typparameter:
      E - the keyType of elements maintained by this Collection
      Parameter:
      identity - the start value
      operator - the operation that should be applied
      Gibt zurück:
      the reduction result, returns identity if nothing was found
    • reduce

      public T reduce(ObjectObjectUnaryOperator<T,T> operator)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Performs a reduction on the elements of this Iterable
      Parameter:
      operator - the operation that should be applied
      Gibt zurück:
      the reduction result, returns null value if nothing was found
    • count

      public int count(Predicate<T> filter)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Helper function to reduce stream usage that allows to count the valid elements.
      Parameter:
      filter - that should be applied
      Gibt zurück:
      the amount of Valid Elements
    • listIterator

      public ObjectListIterator<T> listIterator(int index)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A Type-Specific Iterator of listIterator
      Angegeben von:
      listIterator in Schnittstelle List<T>
      Angegeben von:
      listIterator in Schnittstelle ObjectList<T>
      Setzt außer Kraft:
      listIterator in Klasse AbstractObjectList<T>
      Siehe auch:
    • set

      public T set(int index, T e)
    • replaceAll

      public void replaceAll(UnaryOperator<T> o)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A function to replace all values in the list
      Parameter:
      o - the action to replace the values
    • remove

      public T remove(int index)
    • swapRemove

      public T swapRemove(int index)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A Highly Optimized remove function that removes the desired element. But instead of shifting the elements to the left it moves the last element to the removed space.
      Parameter:
      index - the index of the element to be removed
      Gibt zurück:
      the element previously at the specified position
    • removeAll

      public boolean removeAll(Collection<?> c)
      Angegeben von:
      removeAll in Schnittstelle Collection<T>
      Angegeben von:
      removeAll in Schnittstelle List<T>
      Setzt außer Kraft:
      removeAll in Klasse AbstractCollection<T>
    • retainAll

      public boolean retainAll(Collection<?> c)
      Angegeben von:
      retainAll in Schnittstelle Collection<T>
      Angegeben von:
      retainAll in Schnittstelle List<T>
      Setzt außer Kraft:
      retainAll in Klasse AbstractCollection<T>
    • removeIf

      public boolean removeIf(Predicate<? super T> filter)
    • removeAll

      public boolean removeAll(ObjectCollection<T> c)
      Beschreibung aus Klasse kopiert: AbstractObjectCollection
      A Type-Specific implementation of removeAll. This Implementation iterates over all elements and removes them as they were found in the other collection.
      Angegeben von:
      removeAll in Schnittstelle ObjectCollection<T>
      Setzt außer Kraft:
      removeAll in Klasse AbstractObjectCollection<T>
      Parameter:
      c - the elements that should be deleted
      Gibt zurück:
      true if the collection was modified.
      Siehe auch:
    • retainAll

      public boolean retainAll(ObjectCollection<T> c)
      Beschreibung aus Klasse kopiert: AbstractObjectCollection
      A Type-Specific implementation of retainAll. This Implementation iterates over all elements and removes them as they were not found in the other collection.
      Angegeben von:
      retainAll in Schnittstelle ObjectCollection<T>
      Setzt außer Kraft:
      retainAll in Klasse AbstractObjectCollection<T>
      Parameter:
      c - the elements that should be kept
      Gibt zurück:
      true if the collection was modified.
      Siehe auch:
    • removeAll

      public boolean removeAll(ObjectCollection<T> c, Consumer<T> r)
      Beschreibung aus Schnittstelle kopiert: ObjectCollection
      A Type-Specific removeAll function that reduces (un)boxing. It also notifies the remover of which exact element is going to be removed.
      Angegeben von:
      removeAll in Schnittstelle ObjectCollection<T>
      Setzt außer Kraft:
      removeAll in Klasse AbstractObjectCollection<T>
      Parameter:
      c - the collection of elements that should be removed
      r - elements that got removed
      Gibt zurück:
      true if any element was removed
      Siehe auch:
    • retainAll

      public boolean retainAll(ObjectCollection<T> c, Consumer<T> r)
      Beschreibung aus Schnittstelle kopiert: ObjectCollection
      A Type-Specific retainAll function that reduces (un)boxing. It also notifies the remover of which exact element is going to be removed.
      Angegeben von:
      retainAll in Schnittstelle ObjectCollection<T>
      Setzt außer Kraft:
      retainAll in Klasse AbstractObjectCollection<T>
      Parameter:
      c - the collection of elements that should be kept
      r - elements that got removed
      Gibt zurück:
      true if any element was removed
      Siehe auch:
    • toArray

      public Object[] toArray()
      A toArray implementation that ensures the Array itself is a Object.
      Angegeben von:
      toArray in Schnittstelle Collection<T>
      Angegeben von:
      toArray in Schnittstelle List<T>
      Setzt außer Kraft:
      toArray in Klasse AbstractCollection<T>
      Gibt zurück:
      a Array of the elements in the list
    • toArray

      public <E> E[] toArray(E[] a)
      A toArray implementation that ensures the Array itself is a Object.
      Angegeben von:
      toArray in Schnittstelle Collection<T>
      Angegeben von:
      toArray in Schnittstelle List<T>
      Setzt außer Kraft:
      toArray in Klasse AbstractCollection<T>
      Parameter:
      a - original array. If null a Object array with the right size is created. If to small the Array of the same type is created with the right size
      Gibt zurück:
      a Array of the elements in the list
    • size

      public int size()
      A function to return the size of the list
      Angegeben von:
      size in Schnittstelle Collection<T>
      Angegeben von:
      size in Schnittstelle ISizeProvider
      Angegeben von:
      size in Schnittstelle List<T>
      Angegeben von:
      size in Klasse AbstractCollection<T>
      Gibt zurück:
      the size of elements in the list
    • size

      public void size(int size)
      Beschreibung aus Schnittstelle kopiert: ObjectList
      A function to ensure the elements are within the requested size. If smaller then the stored elements they get removed as needed. If bigger it is ensured that enough room is provided depending on the implementation
      Angegeben von:
      size in Schnittstelle ObjectList<T>
      Setzt außer Kraft:
      size in Klasse AbstractObjectList<T>
      Parameter:
      size - the requested amount of elements/room for elements
    • clear

      public void clear()
      Angegeben von:
      clear in Schnittstelle Collection<T>
      Angegeben von:
      clear in Schnittstelle List<T>
      Setzt außer Kraft:
      clear in Klasse AbstractCollection<T>
    • spliterator

      public ObjectSplititerator<T> spliterator()
      A Type Specific Type Splititerator to reduce boxing/unboxing
      Gibt zurück:
      type specific splititerator
      Note:
      characteristics are ordered, sized, subsized