FifoQueueT Class |
Compared to the standard generic Queue, this queue allows access to queue elements throught the [P:Item(int)] property of the IList{T} interface. It implements the IList{T} interface, supporting in-queue modifications, i.e. methods like Remove and Insert.
The next element to be dequeued is the first element in the IList{T},
this[0]
Namespace: DHI.Mike1D.Generic.Collections
public class FifoQueue<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IReadOnlyList<T>, IReadOnlyCollection<T>
[Missing <typeparam name="T"/> documentation for "T:DHI.Mike1D.Generic.Collections.FifoQueue`1"]
The FifoQueueT type exposes the following members.
Name | Description | |
---|---|---|
FifoQueueT |
Initializes a new instance of the FifoQueue{T} class that
is empty and has the default initial capacity.
| |
FifoQueueT(IEnumerableT) |
Initializes a new instance of the FifoQueue{T} class that
contains elements copied from the specified collection and has
sufficient capacity to accommodate the number of elements copied.
If collection is an ICollection, the capacity will match exactly the size of the collection. | |
FifoQueueT(Int32) |
Initializes a new instance of the FifoQueue{T} class that
is empty and has the specified initial capacity.
|
Name | Description | |
---|---|---|
Array |
An array representation of the current content of the queue.
Note that this will make a copy of the internal array | |
Capacity |
Gets or sets the total number of elements the internal data structure can hold without resizing.
| |
Count |
Gets the number of elements contained in the FifoQueue{T}.
| |
Item |
Gets/sets the element at the specified position in the FifoQueue{T}.
| |
Tail |
Index in internal _q array of last element in the queue
|
Name | Description | |
---|---|---|
Add |
Adds an object to the end of the FifoQueue{T}, same as Enqueue(T) | |
AddRange |
Adds an object to the end of the FifoQueue{T}, same as Enqueue(T) | |
AddRotate |
Adds an object to the end of the FifoQueue{T}, dequeuing the first item if queue is full (capacity is met).
| |
Clear |
Removes all objects from the FifoQueue{T}.
| |
Contains | Determines whether the ICollectionT contains a specific value. | |
CopyTo | ||
Dequeue |
Removes and returns the object at the beginning of the FifoQueue{T}.
| |
Enqueue |
Adds an object to the end of the FifoQueue{T}.
| |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetEnumerator |
Returns an enumerator that iterates through the FifoQueue{T}.
| |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Index | ||
IndexOf | Determines the index of a specific item in the IListT. | |
Insert | Inserts an item to the IListT at the specified index. | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Peek |
Returns the object at the beginning of the FifoQueue{T} without removing it.
| |
PushBack |
Put the first element to the end of the queue
| |
Remove | Removes the first occurrence of a specific object from the ICollectionT. | |
RemoveAt | Removes the IListT item at the specified index. | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
_count |
Number of elements currently in the queue/circular array
| |
_head |
Index of first element in circular array _q | |
_q |
Internal array of queue values, used as circular array.
|
Name | Description | |
---|---|---|
BinarySearchT(T) | Overloaded.
Searches the entire sorted IListT for an element
and returns the zero-based index of the element.
(Defined by GenericExtensions.)If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e. list[interval-1] < key < list[interval] | |
BinarySearchT(FuncT, Int32) | Overloaded.
Searches the entire sorted IListT for an element using the provided
comparer and returns the zero-based index of the element.
(Defined by GenericExtensions.)This differs from the "ordinary" binary search in allowing a comparer delegate that defines whether an item is found (returning 0), whether the item in the list is before (<0) or after (>0) that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class. Examples
If having a list of doubles, to find 4.5 in the list, use:
int index = list.BinarySearch(d => d.CompareTo(4.5)) | |
BinarySearchT(T, IComparerT) | Overloaded.
Searches the entire sorted IListT for an element using the provided
comparer and returns the zero-based index of the element.
(Defined by GenericExtensions.)If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e. list[interval-1] < key < list[interval] | |
BinarySearchT, TKey(FuncT, TKey, TKey) | Overloaded.
Searches the entire sorted IListT for an element
and returns the zero-based index of the element.
(Defined by GenericExtensions.)If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e. list[interval-1] < key < list[interval] This differs from the "ordinary" binary search in allowing a keySelectorcomparer that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class. | |
BinarySearchT, TKey(FuncT, TKey, TKey, IComparerTKey) | Overloaded.
Searches the entire sorted IListT for an element using the provided
comparer and returns the zero-based index of the element.
(Defined by GenericExtensions.)If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e. list[interval-1] < key < list[interval] This differs from the "ordinary" binary search in allowing a keySelectorcomparer that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class. | |
FindIndexT(PredicateT) | Overloaded. Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the list. (Defined by GenericExtensions.) | |
FindIndexT(Int32, PredicateT) | Overloaded. Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ListT that extends from the specified index to the last element. (Defined by GenericExtensions.) | |
SortT | Overloaded.
Sorts the elements in the entire List{T} using the default comparer.
(Defined by GenericExtensions.)A quick sort algorithm is used. Quick sort is a un-stable sort algorithm i.e. if two elements are equal their order may not be preserved. If the provided IList is either an array or a list, the build in sorting method is used (also quick sort). | |
SortT(IComparerT) | Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.
(Defined by GenericExtensions.)A quick sort algorithm is used. Quick sort is a un-stable sort algorithm i.e. if two elements are equal their order may not be preserved. If the provided IList is either an array or a list, the build in sorting method is used (also quick sort). | |
SortStableT | Overloaded. (Defined by GenericExtensions.) | |
SortStableT(IComparerT) | Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.
(Defined by GenericExtensions.)A merge sort algorithm is used. merge sort is a stable sort algorithm i.e. if two elements are equal their order are preserved. | |
SortStableT(ComparisonT) | Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.
(Defined by GenericExtensions.)A merge sort algorithm is used. merge sort is a stable sort algorithm i.e. if two elements are equal their order are preserved. |
This class implements a generic queue as a circular array. Objects stored in a FifoQueue{T} are inserted at one end and removed from the other. The operations Enqueue(T) and Dequeue are O(1) operations.
The capacity of a FifoQueue{T} is the number of elements the FifoQueue{T} can currently hold. As elements are added to a FifoQueue{T}, the capacity is automatically increased as required by reallocating the internal array.
FifoQueue{T} accepts null as a valid value for reference types and allows duplicate elements.