Klasse ObjectArrayFIFOQueue<T>

java.lang.Object
speiger.src.collections.objects.queues.AbstractObjectPriorityQueue<T>
speiger.src.collections.objects.queues.ObjectArrayFIFOQueue<T>
Typparameter:
T - the keyType of elements maintained by this Collection
Alle implementierten Schnittstellen:
Iterable<T>, ObjectIterable<T>, ObjectPriorityDequeue<T>, ObjectPriorityQueue<T>, ITrimmable

public class ObjectArrayFIFOQueue<T> extends AbstractObjectPriorityQueue<T> implements ObjectPriorityDequeue<T>, ITrimmable
A Simple First In First Out Priority Queue that is a Good Replacement for a linked list (or ArrayDequeue) Its specific implementation uses a backing array that grows and shrinks as it is needed.
  • Felddetails

    • MIN_CAPACITY

      public static final int MIN_CAPACITY
      The Minimum Capacity that is allowed
      Siehe auch:
  • Konstruktordetails

    • ObjectArrayFIFOQueue

      public ObjectArrayFIFOQueue(T[] values)
      Constructor using a initial array
      Parameter:
      values - the Array that should be used
    • ObjectArrayFIFOQueue

      public ObjectArrayFIFOQueue(T[] values, int size)
      Constructor using a initial array
      Parameter:
      values - the Array that should be used
      size - the amount of elements that are in the initial array
      Löst aus:
      IllegalStateException - if values is smaller then size
    • ObjectArrayFIFOQueue

      public ObjectArrayFIFOQueue(T[] values, int offset, int size)
      Constructor using a initial array
      Parameter:
      values - the Array that should be used
      offset - where to begin in the initial array
      size - the amount of elements that are in the initial array
      Löst aus:
      IllegalStateException - if values is smaller then size
    • ObjectArrayFIFOQueue

      public ObjectArrayFIFOQueue(int capacity)
      Constructor with a Min Capacity
      Parameter:
      capacity - the initial capacity of the backing array
      Löst aus:
      IllegalStateException - if the initial size is smaller 0
    • ObjectArrayFIFOQueue

      public ObjectArrayFIFOQueue()
      Default Construtor
  • Methodendetails

    • iterator

      public ObjectIterator<T> iterator()
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      Returns an iterator over elements of type T.
      Angegeben von:
      iterator in Schnittstelle Iterable<T>
      Angegeben von:
      iterator in Schnittstelle ObjectIterable<T>
      Angegeben von:
      iterator in Schnittstelle ObjectPriorityQueue<T>
      Gibt zurück:
      draining iterator of the PriorityQueue
    • size

      public int size()
      Angegeben von:
      size in Schnittstelle ObjectPriorityQueue<T>
      Gibt zurück:
      the amount of elements that are stored in the PriorityQueue
    • clear

      public void clear()
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      clears all elements within the PriorityQueue, this does not resize the backing arrays
      Angegeben von:
      clear in Schnittstelle ObjectPriorityQueue<T>
    • enqueue

      public void enqueue(T e)
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      Method to insert a element into the PriorityQueue
      Angegeben von:
      enqueue in Schnittstelle ObjectPriorityQueue<T>
      Parameter:
      e - the element that should be inserted
    • enqueueFirst

      public void enqueueFirst(T e)
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityDequeue
      Method to insert a element into the first Index instead of the last.
      Angegeben von:
      enqueueFirst in Schnittstelle ObjectPriorityDequeue<T>
      Parameter:
      e - the element that should be inserted into the first place
    • dequeue

      public T dequeue()
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      Method to extract a element from the PriorityQueue
      Angegeben von:
      dequeue in Schnittstelle ObjectPriorityQueue<T>
      Gibt zurück:
      a element from the Queue
    • dequeueLast

      public T dequeueLast()
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityDequeue
      A Method to remove a element from the last place instead of the first
      Angegeben von:
      dequeueLast in Schnittstelle ObjectPriorityDequeue<T>
      Gibt zurück:
      the last element inserted
    • peek

      public T peek(int index)
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      Peeking function to see whats inside the queue.
      Angegeben von:
      peek in Schnittstelle ObjectPriorityQueue<T>
      Parameter:
      index - of the element that is requested to be viewed.
      Gibt zurück:
      the element that is requested
    • contains

      public boolean contains(T e)
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      Method to find out if a element is part of the queue
      Angegeben von:
      contains in Schnittstelle ObjectPriorityQueue<T>
      Parameter:
      e - the element that is searched for
      Gibt zurück:
      true if the element is in the queue
    • removeFirst

      public boolean removeFirst(T e)
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      Removes the first found element in the queue
      Angegeben von:
      removeFirst in Schnittstelle ObjectPriorityQueue<T>
      Parameter:
      e - the element that should be removed
      Gibt zurück:
      if a searched element was removed
    • removeLast

      public boolean removeLast(T e)
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      Removes the last found element in the queue
      Angegeben von:
      removeLast in Schnittstelle ObjectPriorityQueue<T>
      Parameter:
      e - the element that should be removed
      Gibt zurück:
      if a searched element was removed
    • onChanged

      public void onChanged()
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      Allows to notify the Queue to be revalidate its data
      Angegeben von:
      onChanged in Schnittstelle ObjectPriorityQueue<T>
    • copy

      public ObjectArrayFIFOQueue<T> copy()
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      A Function that does a shallow clone of the PriorityQueue itself. This function is more optimized then a copy constructor since the PriorityQueue does not have to be unsorted/resorted. It can be compared to Cloneable but with less exception risk
      Angegeben von:
      copy in Schnittstelle ObjectPriorityDequeue<T>
      Angegeben von:
      copy in Schnittstelle ObjectPriorityQueue<T>
      Gibt zurück:
      a Shallow Copy of the PriorityQueue
    • comparator

      public Comparator<? super T> comparator()
      Angegeben von:
      comparator in Schnittstelle ObjectPriorityQueue<T>
      Gibt zurück:
      the sorter of the Queue, can be null
    • forEach

      public void forEach(Consumer<? super T> action)
      Angegeben von:
      forEach in Schnittstelle Iterable<T>
    • forEachIndexed

      public void forEachIndexed(IntObjectConsumer<T> action)
      Beschreibung aus Schnittstelle kopiert: ObjectIterable
      A Indexed forEach implementation that allows you to keep track of how many elements were already iterated over.
      Angegeben von:
      forEachIndexed in Schnittstelle ObjectIterable<T>
      Parameter:
      action - The action to be performed for each element
    • 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.
      Angegeben von:
      forEach in Schnittstelle ObjectIterable<T>
      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.
      Angegeben von:
      matchesAny in Schnittstelle ObjectIterable<T>
      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.
      Angegeben von:
      matchesNone in Schnittstelle ObjectIterable<T>
      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.
      Angegeben von:
      matchesAll in Schnittstelle ObjectIterable<T>
      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.
      Angegeben von:
      findFirst in Schnittstelle ObjectIterable<T>
      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
      Angegeben von:
      reduce in Schnittstelle ObjectIterable<T>
      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
      Angegeben von:
      reduce in Schnittstelle ObjectIterable<T>
      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.
      Angegeben von:
      count in Schnittstelle ObjectIterable<T>
      Parameter:
      filter - that should be applied
      Gibt zurück:
      the amount of Valid Elements
    • trim

      public boolean trim(int size)
      Beschreibung aus Schnittstelle kopiert: ITrimmable
      Trims the original collection down to the size of the current elements or the requested size depending which is bigger
      Angegeben von:
      trim in Schnittstelle ITrimmable
      Parameter:
      size - the requested trim size.
      Gibt zurück:
      if the internal array has been trimmed.
    • clearAndTrim

      public void clearAndTrim(int size)
      Trims the collection down to the requested size and clears all elements while doing so
      Angegeben von:
      clearAndTrim in Schnittstelle ITrimmable
      Parameter:
      size - the amount of elements that should be allowed
      Note:
      this will enforce minimum size of the collection itself
    • toArray

      public <E> E[] toArray(E[] input)
      Beschreibung aus Schnittstelle kopiert: ObjectPriorityQueue
      A method to drop the contents of the Queue without clearing the queue
      Angegeben von:
      toArray in Schnittstelle ObjectPriorityQueue<T>
      Typparameter:
      E - the keyType of elements maintained by this Collection
      Parameter:
      input - where the elements should be inserted to. If it does not fit then it creates a new appropiatly created array
      Gibt zurück:
      the contents of the queue into a seperate array.