如何反向迭代 ArrayDeque?
对于数组,我通常会这样做,但它不支持索引。
for (int i = delegate.size() - 1; i >= 0; i--) {}
谢谢
如何反向迭代 ArrayDeque?
对于数组,我通常会这样做,但它不支持索引。
for (int i = delegate.size() - 1; i >= 0; i--) {}
谢谢
descendingIterator()
获取以相反顺序迭代ArrayDeque<T>
的迭代器。Iterator<T> it = arrayDeque.descendingIterator();
while(it.hasNext()) {
// do something with it.next()
}
自Java 21开始,只需使用Deque.reversed
:
for (int i : arrayDeque.reversed()) {}
试一下这个
元素将会从最后一个到第一个的顺序返回。
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class List {
public static void main(String[] args) {
// creating a TreeSet
TreeSet <Integer>treeadd = new TreeSet<Integer>();
// adding in the tree set
treeadd.add(1);
treeadd.add(13);
treeadd.add(17);
treeadd.add(2);
// create descending iterator
Iterator iterator;
iterator = treeadd.descendingIterator();
// displaying the Tree set data
System.out.println("Descending order: ");
while (iterator.hasNext()){
System.out.println(iterator.next() + " ");
}
}
}
kotlin.collections.ArrayDeque
,asReversed()
应该能解决问题。它不会创建一个新的、反转的列表副本。而是使用装饰器/视图将原始列表包装起来,并将索引指向原始列表中的反转位置。请参阅源代码。 - aruhkotlin.collections.ArrayDeque
,asReversed()
应该能解决问题。它不会创建一个新的、反转的列表副本。原始列表会被包装在一个装饰器/视图中,该视图将索引指向原始列表中的反转位置。请参阅源代码。 - undefined