📅  最后修改于: 2023-12-03 15:16:29.824000             🧑  作者: Mango
Java中的LinkedBlockingDeque是一个基于链表实现的双端阻塞队列,它提供了一些能够帮助你更好地对队列进行操作的方法,其中就包括了descendingIterator()方法。
LinkedBlockingDeque提供了两个迭代器:在队列中正向迭代元素的迭代器和在队列中反向迭代元素的迭代器。 descendingIterator()方法返回一个反向迭代器,这个迭代器能够帮助你反向遍历队列中的元素。
public Iterator<E> descendingIterator()
无参数。
该方法返回一个迭代器,通过该迭代器可以从队列的尾部开始遍历队列中的元素。
import java.util.concurrent.LinkedBlockingDeque;
import java.util.Iterator;
public class Test {
public static void main(String[] args){
LinkedBlockingDeque<Integer> deque = new LinkedBlockingDeque<Integer>();
deque.addFirst(1);
deque.addFirst(2);
deque.addLast(3);
deque.addLast(4);
System.out.println("正向遍历队列中的元素:");
Iterator<Integer> iterator = deque.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("反向遍历队列中的元素:");
Iterator<Integer> descendingIterator = deque.descendingIterator();
while(descendingIterator.hasNext()){
System.out.print(descendingIterator.next() + " ");
}
System.out.println();
}
}
输出结果:
正向遍历队列中的元素:
2 1 3 4
反向遍历队列中的元素:
4 3 1 2
通过使用LinkedBlockingDeque的descendingIterator()方法,我们可以得到一个反向迭代器,通过这个迭代器可以方便地从队列的尾部开始遍历队列中的元素。因为LinkedBlockingDeque是线程安全的,所以在多线程环境下使用非常方便。