为了账号安全,请及时绑定邮箱和手机立即绑定

我的 peek() 方法不会返回队列的头部

我的 peek() 方法不会返回队列的头部

慕姐4208626 2023-09-27 17:32:20
我制作了一个 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 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

this.elements.get(0)会返回队列的头部/前面。由于队列是 FIFO 的,因此添加的第一个元素将最先进入,因此是队列的头部。



查看完整回答
反对 回复 2023-09-27
?
阿晨1998

TA贡献2037条经验 获得超6个赞

看起来您返回的ArrayList<T>不是元素本身,而是返回的最后一个元素被注释掉。

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


查看完整回答
反对 回复 2023-09-27
  • 2 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信