我正在迁移一段代码以使用泛型。这样做的一个理由是,for循环比跟踪索引或使用显式迭代器干净得多。
在大约一半的情况下,列表(ArrayList)通过使用索引以相反的顺序迭代。
谁能建议一种更干净的方法来做到这一点(因为我不喜欢索引for循环时使用集合),尽管它确实有效?
for (int i = nodes.size() - 1; i >= 0; i--) {
final Node each = (Node) nodes.get(i);
...
}
注意:我不能在JDK之外添加任何新的依赖项。
原因:“不知道为什么没有ArrayList的descent iterator…”
因为数组列表不保持列表在相同的顺序,因为数据已添加到列表。所以,千万不要用数组列表。
链表将保持数据与ADD到list的顺序相同。
所以,在上面的例子中,我使用了ArrayList()来让用户扭曲他们的思想,让他们从他们的角度去锻炼一些东西。
而不是这个
List<String> list = new ArrayList<String>();
USE:
List<String> list = new LinkedList<String>();
list.add("ravi");
list.add("kant");
list.add("soni");
// Iterate to disply : result will be as --- ravi kant soni
for (String name : list) {
...
}
//Now call this method
Collections.reverse(list);
// iterate and print index wise : result will be as --- soni kant ravi
for (String name : list) {
...
}