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)咨询.
  • 相关阅读:
    Matlab随笔之三维图形绘制
    Matlab随笔之模拟退火算法
    Matlab随笔之矩阵入门知识
    Matlab随笔之求解线性方程
    Matlab随笔之分段线性函数化为线性规划
    Matlab随笔之指派问题的整数规划
    Matlab随笔之线性规划
    Android单位转换 (px、dp、sp之间的转换工具类)
    Android禁止输入表情符号
    设计模式之策略模式
  • 原文地址:https://www.cnblogs.com/anzhi/p/7443560.html
Copyright © 2011-2022 走看看