java - 迭代 linkedBlockingQueue 并同时删除元素

标签 java

我的代码如下:

private LinkedBlockingQueue<TrackedOperation> operations = new LinkedBlockingQueue<TrackedOperation>(10000);
        Iterator<TrackedOperation> it = operations.iterator();
        while (it.hasNext()) {
            TrackedOperation op = operations.remove();
                            ...
        }

我的问题是:

迭代器是否总是指向队列的头部,这是预期的行为吗?

如果我没有道理,那么我的问题是迭代器的行为是什么?我的操作队列和迭代器与上面的代码一致吗?

最佳答案

这是我所做的,

while (!linkedBlockingQueue.isEmpty()) {
    linkedBlockingQueue.remove(); //do what you want to with it
}

关于java - 迭代 linkedBlockingQueue 并同时删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21292548/

相关文章:

java - 回到基础 : Apache Camel Routes and Direct Component

java - hibernate 4.2 + 轴 1.4 + Apache Tomcat 7 + maven

java - 银行账户计划、余额变更

java - 具有泛型的类将自身引用为 Java 中该泛型的类型

java - 如何通过按 Enter 清除 JTextArea 并保持在同一行

java - 我在 Android 上启动 Appium 时遇到错误

javassist异常

java - 使用Iterator遍历ArrayList并使用instanceof设置对象

java - 单击按钮时 TextView 不会更新

java - 多项式加 : Unable to run code