zoukankan      html  css  js  c++  java
  • 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 遍历使用迭代器遍历

  • 相关阅读:
    LF.51.Insert In Binary Search Tree
    Use Array To Implement Queue With Size(bounded)
    Use LinkedList to implement Queue
    Use LinkedList to Implement Stack
    LT.11.Search Range In Binary Search Tree
    Odoo 12开发之后台视图 – 设计用户界面 ###
    Odoo 之业务逻辑
    Odoo开发之记录集 – 使用模型数据
    odoo 之 结构化应用数据
    odoo之数据导入导出以及模块数据
  • 原文地址:https://www.cnblogs.com/wlong-blog/p/14774312.html
Copyright © 2011-2022 走看看