Очередь сбора - PullRequest
       4

Очередь сбора

0 голосов
/ 19 августа 2010

Если я хотел сделать пользовательскую реализацию очереди, правильно сказать, что я могу выбрать любой порядок, который я хочу (не FIFO), но я должен всегда уважать тот факт, что удаляемый элемент позиционируется как «голова»?

но для операции вставки я не обязан помещать элемент в хвост (как в FIFO)?

Ответы [ 2 ]

3 голосов
/ 19 августа 2010

Вы правы. javadoc ясно заявляет это:

Очереди обычно, но не обязательно, упорядочивают элементы в порядке FIFO (первым пришел-первым вышел). Среди исключений - очереди с приоритетами, которые упорядочивают элементы в соответствии с предоставленным компаратором, или естественное упорядочение элементов, и очереди LIFO (или стеки), которые упорядочивают элементы LIFO («последний пришел-первый вышел»). Какой бы порядок не использовался, заголовок очереди - это тот элемент, который будет удален вызовом remove () или poll (). В очереди FIFO все новые элементы вставляются в конец очереди. Другие виды очередей могут использовать другие правила размещения. Каждая реализация Queue должна указывать свои свойства упорядочения.

1 голос
/ 19 августа 2010

Вы правы.

Документация Queue даже прямо заявляет об этом (выделено мое):

Очереди обычно, но делаютне обязательно , элементы заказа в порядке FIFO (первым пришел-первым вышел).[...] Независимо от используемого порядка, заголовок очереди - это тот элемент, который будет удален путем вызова remove() или poll().

...