Мой метод peek () не возвращает заголовок моей очереди - PullRequest
0 голосов
/ 06 октября 2019

У меня есть класс QueueRunner. Я пытаюсь выяснить, перебирать заголовок моей очереди после poll () или offer (), чтобы вернуть заголовок моей очереди, используя peek (). У меня проблемы с возвратом головы или передней части очереди.

Public class Queue<T> {
private ArrayList<T> elements;

public Queue() {
    this.elements = new ArrayList<T>();
}

/**
* Offers an element to the end of the queue.
*
* @param    T   item
*/
public void offer(T element) {
    this.elements.add(element);
}

/**
* Peeks at, but does not remove, the element at the head of the queue.
*
* @return   T
*/
public T peek() {
    if(this.elements.size()==0) {
        return null;
    }
    else {
        return this.elements;
    // return this.elements.get(this.elements.size()-1);
    }
}

/**
* Polls an element from the head of the queue.
*
* @return   T
*/
public T poll() {
    return this.elements.remove(0);
}

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

this.elements.get(0) вернет вам начало / конец очереди. Поскольку очередь - это FIFO, первым добавится элемент, который будет первым и, следовательно, заголовком очереди.

0 голосов
/ 06 октября 2019

Похоже, вы возвращаете сам ArrayList<T>, а не элемент, а возвращение последнего элемента закомментировано.

else { return this.elements; // return this.elements.get(this.elements.size()-1); }

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