以最快和最有效的方式反向遍历ArrayList

mre*_*mre 7 java iteration arraylist micro-optimization

有没有比使用ListIterator?更快,更有效的方法?

ListIterator<Integer> itr = list.listIterator(list.size());
while(itr.hasPrevious()){
    System.out.println(itr.previous());
}
Run Code Online (Sandbox Code Playgroud)

jjn*_*guy 10

根据ListListIterator以下的实施可能(稍微)更快.

List l;
for (int i = l.size()-1; i >=0; i--) {
    System.out.println(l.get(i));
}
Run Code Online (Sandbox Code Playgroud)

这对于a ArrayList来说可能更快,但对于a来说几乎肯定会更慢LinkedList.

最好的办法就是使用迭代器.

几乎可以肯定的是,无论你在循环中做什么工作都会否定不使用迭代器所获得的任何性能.