gpt4 book ai didi

Java 数据结构表明队列已结束/完成?

转载 作者:行者123 更新时间:2023-12-02 07:15:27 26 4
gpt4 key购买 nike

我正在寻找一种 Java 7 数据结构,其行为类似于 java.util.Queue,并且还具有“最终项目已被删除”的概念。

例如,应可以表达如下概念:

while(!endingQueue.isFinished()) {
Element e = endingQueue.remove()
doSomethingWith(e);
}

最佳答案

使用界面java.util.Queue ,怎么样

while(queue.peek() != null) {
Element e = queue.remove();
doSomethingWith(e);
}

编辑以回答阿卜杜勒的评论:

By contract, a null item may be a valid entry for a java.util.Queue

您必须指出 javadoc 中提到这一点的具体句子,因为我没有看到它。

我看到的是 peek 方法的描述。

检索但不删除此队列的头部,如果此队列为空,则返回 null。

现在,队列中的元素可以为空。但它仍然是一个元素,并且将由 peek 和 remove 方法返回。

Also, think about a concurrently accessed Queue. Just checking for null may not be enough to decide whether a producer has or hasn't put an element to the queue.

队列是一个接口(interface)。您必须使用具体的实现来测试它,例如 ConcurrentLinkedQueue 。如果没有一个具体实现能够满足您的要求,您可以自己实现 Queue。

Queue 接口(interface)提供了一种方法来查看队列中是否有元素。

ConcurentLinkedQueue 类提供了一个附加方法 isEmpty,用于查看队列中是否有元素。

测试并查看是否遇到实际的性能问题,而不是担心可能发生或可能不会发生的性能问题。

关于Java 数据结构表明队列已结束/完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982878/

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