2013-05-03 2 views
0

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

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

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

  • А) Длина
  • Б) Существует не достаточно информации, чтобы вычислить длину очереди
  • C) Эта ситуация не может произойти

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

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

+2

Не зная реализации 'ArrayBndQueue', невозможно ответить на вопрос. –

+0

Согласовано с Джим. Коллекционные классы имеют размер и емкость. Не длина. – KyleM

+0

@JimGarrison - это в основном ответ на этот вопрос! Вы бы ответили! :) – SudoRahul

ответ

0

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

0

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

Часть о 'front = 8 rear = 7' кажется совершенно бессмысленной, так как это действительно весь вопрос.

Смежные вопросы