List遍历方式选择
Posted 山阴路的秋天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List遍历方式选择相关的知识,希望对你有一定的参考价值。
List 中ArrayList ,linkedList 两种列表分别进行 for循环遍历 和迭代器遍历比较,代码如下:
public class TraverseTest { private static long traverseByLoop(List list) { long startTime = System.currentTimeMillis(); for (int i = 0; i < list.size(); i++) { list.get(i); } long endTime = System.currentTimeMillis(); return endTime - startTime; } private static long traverseByIterator(List list) { long startTime = System.currentTimeMillis(); for (Iterator it = list.iterator(); it.hasNext(); ) { it.next(); } long endTime = System.currentTimeMillis(); return endTime - startTime; } public static void main(String[] args) { List<String> arrayList = new ArrayList<>(); for (int i = 0; i < 100000; i++) { arrayList.add("" + i); } long loopTime = traverseByLoop(arrayList); long iteratorTime = traverseByIterator(arrayList); System.out.println("for循环遍历时间:" + loopTime); System.out.println("iterator遍历时间:" + iteratorTime); List<String> linkedList = new LinkedList<>(); for (int i = 0; i < 100000; i++) { linkedList.add("" + i); } loopTime = traverseByLoop(linkedList); iteratorTime = traverseByIterator(linkedList); System.out.println("for循环遍历时间:" + loopTime); System.out.println("iterator遍历时间:" + iteratorTime); } }
测试结果:
for循环遍历时间:5
iterator遍历时间:7
for循环遍历时间:12786
iterator遍历时间:4
可以看出:ArrayList for循环和iterator 遍历结果相差不大 ,一般推荐使用for循环遍历; LinkedList 使用for循环遍历耗时时间长,linkedList 遍历使用迭代器遍历
以上是关于List遍历方式选择的主要内容,如果未能解决你的问题,请参考以下文章
817. Linked List Components - LeetCode