Длина указанной очереди

Я исправляю один из своих тестов, и я был совершенно неправ в одном вопросе, как и многие другие в моем классе. Предположим, у нас есть объявление:

ArrayBndQueue<String> q = new ArrayBndQueue<String>(10);

Выберите один из следующих вариантов, чтобы описать длину очереди.

  • А) Длина
  • Б) Недостаточно информации для вычисления длины очереди
  • в) такой ситуации быть не может

перед = 8 зад = 7

Мы все думали, что этой информации достаточно для очереди. Если спереди 8, а сзади 7, мы думали, что это будет полная очередь (длиной 10). Однако этот ответ был неверным. Может кто-нибудь объяснить, почему именно?


person Ampage Grietu    schedule 03.05.2013    source источник
comment
Не зная реализации ArrayBndQueue невозможно ответить на вопрос.   -  person Jim Garrison    schedule 03.05.2013
comment
Согласен с Джимом. Классы-коллекции имеют размер и вместимость. Не длина.   -  person KyleM    schedule 03.05.2013
comment
@JimGarrison - это, по сути, ответ на этот вопрос! Вы бы ответили! :)   -  person RainMaker    schedule 03.05.2013
comment
Правильно, это был весь вопрос.   -  person Ampage Grietu    schedule 03.05.2013


Ответы (2)


Очередь — это коллекция, поэтому у нее есть метод size(), который возвращает ее размер. Неизвестно, как реализован ArrayBndQueue, но все очереди JDK пусты после создания, если они не принимают другую коллекцию в качестве аргумента во время создания.

person Evgeniy Dorofeev    schedule 03.05.2013

Недостаточно информации для вычисления длины очереди при отсутствии какой-либо документации или спецификации ArrayBndQueue.

Часть о «спереди = 8 сзади = 7» кажется совершенно бессмысленной, как и весь вопрос.

person user207421    schedule 03.05.2013