zoukankan      html  css  js  c++  java
  • List&ArrayList&LinkedList

    Collection接口
        |--List:元素是有序的,元素可以重复。因为该集合体系有索引。
            |--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。
            |--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
            |--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。
     
    collection共有的一些方法

         
    ArrayList的常用方法
     
    LinkedList常用方法

    ArrayList和linkedlist进行对比:
         构造一个拥有100万数据的ArrayList和等价的LinkedList,使用以上代码进行测试,测试结果的相对耗时如下表所示:
         
    可以看到,最简便的ForEach循环并没有很好的性能表现,综合性能不如普通的迭代器,而是用for循环通过随机访问遍历列表时,
    ArrayList表项很好,但是LinkedList的表现却无法让人接受,甚至没有办法等待程序的结束。
    这是因为对LinkedList进行随机访问时,总会进行一次列表的遍历操作。性能非常差,应避免使用。
     
    ArrayList查询比较快
    linkedlist增删比较快,它的remove方法底层同样是遍历元素,找到符合的,那么remove(object),是O(N),remove(index)是O(N/2)=O(N)
              理论上是O(1)
     
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(zxy.hope@gmail.com)咨询.
  • 相关阅读:
    OPPO R9sPlus MIFlash线刷TWRP Recovery ROOT详细教程
    OPPO R11 R11plus系列 解锁BootLoader ROOT Xposed 你的手机你做主
    努比亚(nubia) M2青春版 NX573J 解锁BootLoader 并进入临时recovery ROOT
    华为 荣耀 等手机解锁BootLoader
    青橙 M4 解锁BootLoader 并刷入recovery ROOT
    程序员修炼之道阅读笔03
    冲刺8
    典型用户模板分析
    学习进度八
    冲刺7
  • 原文地址:https://www.cnblogs.com/anzhi/p/7443560.html
Copyright © 2011-2022 走看看