📅  最后修改于: 2023-12-03 15:01:59.588000             🧑  作者: Mango
LinkedBlockingDeque类位于Java.util.concurrent包中,是一个线程安全的、基于链表结构的双向阻塞队列。它继承了BlockingDeque接口,并实现了Deque接口。iterator()是其中的一个方法。
iterator()方法返回一个迭代器对象,可以用来遍历双向队列中存储的元素。迭代器会按顺序访问队列中的元素,并且支持删除操作。
该方法的语法为:
Iterator<E> iterator()
其中,E是队列中元素的类型。返回值为一个Iterator对象,可以使用下面的方法遍历队列中的元素:
hasNext()
:返回true,如果迭代器中还有元素可以遍历,则返回true。next()
:返回当前迭代器指向的下一个元素,并将迭代器的指针移动到下一个元素。remove()
:从队列中删除当前迭代器最后一次访问的元素。import java.util.Iterator;
import java.util.concurrent.LinkedBlockingDeque;
public class LinkedBlockingDequeIteratorExample {
public static void main(String[] args) {
LinkedBlockingDeque<String> deque = new LinkedBlockingDeque<>();
deque.add("A");
deque.add("B");
deque.add("C");
Iterator<String> iterator = deque.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
iterator.remove();
}
}
}
上述代码首先创建了一个LinkedBlockingDeque对象deque
,并向其中添加了3个元素(字符串类型)。
接着使用iterator()
方法创建一个迭代器对象iterator
,使用while循环遍历队列中的元素,并输出每个元素的值,然后删除元素。
A
B
C
该结果表明,LinkedBlockingDeque对象中的元素已经成功遍历并删除。因此,在使用该方法的时候需要注意,在迭代器中删除元素而不是调用队列的删除方法。