📅  最后修改于: 2023-12-03 15:31:53.227000             🧑  作者: Mango
LinkedBlockingQueue是Java中的一个线程安全的阻塞队列,可以看作是一个先进先出(FIFO)的队列。它是通过链表实现的,可以指定队列的最大长度,当队列达到最大长度时,再有元素入队列时,队列就会阻塞等待。LinkedBlockingQueue提供了iterator()方法来允许开发者遍历队列中的元素。
public Iterator<E> iterator()
iterator()方法返回一个迭代器,允许开发者遍历队列中的元素。迭代器是一种设计模式,它允许程序员按照固定的方式访问一个聚合容器中的每一个元素,而不需要了解容器的内部实现方式。
以下代码示例演示了如何使用LinkedBlockingQueue iterator()方法遍历队列中的元素。
import java.util.Iterator;
import java.util.concurrent.LinkedBlockingQueue;
public class LinkedBlockingQueueDemo {
public static void main(String[] args) {
// 创建一个LinkedBlockingQueue对象
LinkedBlockingQueue<Integer> queue = new LinkedBlockingQueue<Integer>();
// 往队列中添加元素
for(int i=1; i<=5; i++) {
queue.add(i);
}
// 遍历队列中的元素
Iterator<Integer> iterator = queue.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
输出结果如下:
1
2
3
4
5
LinkedBlockingQueue iterator()方法是Java中遍历阻塞队列元素的一种便捷方式。由于LinkedBlockingQueue是线程安全的,因此开发者可以在多线程环境下使用iterator()方法遍历队列中的元素。在使用迭代器遍历队列中的元素时,开发者需要注意线程安全和迭代器的不可修改性。