zoukankan      html  css  js  c++  java
  • 关于LinkedList的三种写法的效率

    1.LinkedList<String> xxList = new LinkedList<String>();

    // ...

    Iterator<String> xxIterator = xxList.iterator();

    while(xxIterator.hasNext()){

    ... = xxIterator.next();

    //....

    }

    2.for(Object obj : List)

     

     

    3.LinkedList<String> xxList = new LinkedList<String>();

    // ...

    for(int i = 0, i < xxList.size(), i++){

    // ...

    }

     

     

    1和2实际是一样的,编辑器会把2编辑成1 

     

     

    为什么3不好,因为是linkedlist ;从执行效率上来差别大 ,需要线性时间啊。 

     

    O(size)这么多的时间。 

     

     

     

    但是如果是linkedlist,用这样循环。就不能保证。 

     

     

     

    是的,那个数组的ArrayList可以保证,LinkedList不行,它每次get(index)时,都会从表头开始。 

     

     

    ArrayList get一个元素,是O。

    而LinkedList get一个,需要O(n/2) 

     

    这样再一循环,更不得了,如果数量级越大,差别越大。 

     

     

    经常要在表中间修改元素时,linkedlist就比arraylist快了。 

     

    他修改的时间是O 

     

    arraylist的话,和位置有关,最优是O,也就是修改最后个,最坏。。。。。。 

    窗体底端

  • 相关阅读:
    java的平台无关性
    Events_附
    get()和eq()方法的比较
    pushStack(elems)和end()方法
    slice()方法
    过滤jQuery对象
    处理DOM操作
    其他jQuery对象处理方法
    jQuery遍历函数总结
    jQuery事件
  • 原文地址:https://www.cnblogs.com/sail/p/2061926.html
Copyright © 2011-2022 走看看