在我现在学习的java课程中,我需要实现一个基于单链表的FIFO队列结构。我必须实现接口并重写3个方法:add、poll和peek。
我被困在poll和peek中,无法在return语句中获得对象。或者有另一种方法。对于任何帮助都会非常感激。
add-使用add()方法将元素添加到队列中< br> poll -获取并删除队列头部的元素< br> peek- as池,而不删除
public class Queue<T> implements Queue2<T> {
Node<T> head;
Node<T> tail;
int size;
@Override
public boolean add(T e) {
Node<T> node = new Node(e);
if (head == null) {
head = node;
tail = node;
} else {
tail.next = node;
tail = node;
node.next = null;
}
size++;
return true;
}
@Override
public T poll() {
if (size == 0)
return null;
else {
T obj = head.getObject();
head = head.next;
if (head == null) {
tail = null;
}
size--;
return obj;
}
}
@Override
public T peek() {
if (head == null)
return null;
else {
return head.getObject();
}
}
class Node<T> {
Node<T> next;
Node<T> value;
public <T> Node(T value) {
}
public T getObject() {
**return null;** // what should be returned here?
}
}
}
public static void main(String[] args) {
Queue<String> queue1 = new Queue<>();
queue1.add("finns");
queue1.add("bella");
queue1.add("ssara");
queue1.add("nanna");
queue1.add("anna");
System.out.println(queue1.peek());
System.out.println(queue1.poll());
class Node<T> {
Node<T> next;
T value;
public Node(T value) {
this.value=value;
}
public T getObject() {
return value;
}
}
Node中的值是您的对象,因此应该是T
类型,而不是Node
删除
我需要一个简单的FIFO实现的队列来存储一堆整数(我不介意它是泛型实现)。 在或Trove/Guava库中已经为我烘焙了什么?
我有一个web服务器(比如tomcat),它为http请求服务 每个请求处理都可能生成一些跟踪信息。 我将把这些跟踪信息写入编年史队列(以字节[]为单位,我将自己进行编组/解编组,就像使用protobuf一样) 我将有一个专用的线程来使用裁剪器从编年史队列中读取。每个消息将只处理一次,如果失败,我将使用自己的重试策略将其放回队列以允许下次尝试。 基于以上用例,我有以下问题: > 应该使用多少追加器
我们正在使用AMAZON SQS FIFO队列来处理我们应用程序的预约服务。一旦消息进入队列,它就会触发Amazon Lambda函数来管理预订过程。因为它是一个FIFO队列,所以我们确保如果有2个人请求相同的插槽,那么这个插槽将给第一个请求者。我的问题是:是否有一种方法(也许是SQS FIFO队列中的设置?)这确保了在前一条消息执行完毕之前,一条消息不会触发Amazon Lambda函数。我只是
本文向大家介绍php 数据结构之链表队列,包括了php 数据结构之链表队列的使用技巧和注意事项,需要的朋友参考一下 php 链表队列 实例代码: 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
我已将FIFO队列作为目标添加到我们的自定义事件总线中。 当eventbridge连接到FIO队列时,需要MessageGroupId属性。 是否可以动态配置该值? 例如:我有一个FIFO队列,我把来自不同用户的事件。每个事件,在细节属性内,有一个属性uuid与用户标识符。我想使用这个属性,而不是e常量值作为MessageGroupId。这样,同一用户的所有事件都将按顺序处理。 谢谢你!
我使用的参考资料如下: 出于效率考虑,我们选择队列的前面位于列表的开头,队列的后面位于列表的末尾。这样,我们从头部移除,并在尾部插入。 我想知道为什么在头部插入并在尾巴上移除会不好?这是因为在单链表中,删除尾节点并不容易,因为您必须访问之前的节点,而在单链表中执行此操作的唯一方法是从头开始?