2010-08-19 3 views
0

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

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

ответ

3

Вы правы. javadoc четко сказано, это:

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

1

Вы верны.

В Queue documentation даже государства это явно (курсив мой):

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