gpt4 book ai didi

Java "not removing"队列

转载 作者:行者123 更新时间:2023-12-02 12:10:56 29 4
gpt4 key购买 nike

Java 中是否有任何类提供与 Queue 相同的功能,但有返回对象的选项,并且不要删除它,只需将其设置在集合末尾?

最佳答案

Queue不直接提供这样的方法。但是,您可以使用 polladd 轻松创建此功能,即删除(并获取)中的第一个元素队列,然后重新添加到队列的末尾

<小时/>

与相同功能的其他实现相比,此方法没有缺点。请注意,对于大多数实现(例如 LinkedList),这两个操作都可以在 O(1) 中执行。然而,PriorityQueue 在插入时速度较慢 O(log(n)),但您无法避免

另请注意,即使您设计自己的 LinkedListPriorityQueue,您最终也会对此操作使用相同的逻辑:删除第一个元素并重新将其附加在末尾。

<小时/>

这是一些代码:

public <E> E pollAndReInsert(final Queue<E> queue) {
final E element = queue.poll();
queue.add(element);
return element;
}

关于Java "not removing"队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46552740/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com