Java: тестирование очереди с изменяемым размером массива

Я пытаюсь реализовать очередь кольцевых массивов, размер которой можно изменить, чтобы выполнить серию тестов.

Однако я неоднократно провалю тесты, в основном из-за неправильного размера очереди после En-Queuing и De-Queuing, но также из-за того, что очередь не смогла изменить размер, когда это ожидалось.

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

Если бы вы могли помочь мне определить причины неудачных испытаний, это было бы очень полезно.

1 ответ

Решение

Я думаю, что ваша проблема вызвана noItems метод:

@Override
public int noItems() {
    if(rear > front)
        return rear - front;
    return N - front + rear;
}

После 1000 вставок размер очереди теперь 2000, но N является final и все еще 1000. Измените N на Queue.length,

PS: соглашения Java рекомендуют, чтобы переменные и атрибуты начинались со строчной буквы: на первый взгляд я искал определение класса Queue и его статическое поле длины:P

Другие вопросы по тегам