За кулисами класс Queue
поддерживает внутренний круговой массив и две переменные, которые служат маркерами для начала и конца кругового массива: голова и хвост.
Метод Enqueue()
начинается с определения, достаточно ли места для добавления нового элемента в очередь.Если это так, он просто добавляет элемент в круговой массив по индексу хвоста, а затем «увеличивает» хвост, используя оператор модуля, чтобы убедиться, что хвост не превышает длину внутреннего массива.Однако, если места недостаточно, массив увеличивается на указанный коэффициент роста.Этот фактор роста имеет значение по умолчанию 2,0, что удваивает размер внутреннего массива, но вы можете указать этот фактор в конструкторе класса Queue
.устанавливается равным нулю, а затем GCed по мере необходимости, хотя и не является детерминированным;времена, когда GC работает, могут варьироваться.