zoukankan      html  css  js  c++  java
  • java方法区别之一一ArrayList和LinkedList

    容器:
    1.Collection(interface)
    a.Set((interface)):不允许重复
    (1).HashSet:无序不重复
    (2).TreeSet:有序不重复
    b.List(interface):有序(元素存入顺序),可重复
    (1).LinkedList:链表,线程不安全
    (2).ArrayList:数组,线程不安全
    (3).Vector:数组,线程安全
    2.Map(interface)
    a.HashMap

    ArrayList:是通过维护数组来实现的
    改、查操作使用ArrayList速度快捷

    ArrayList实现了List接口,它是以数组的方式来实现的,数组的特性是可以使用索引的方式来快速定位对象的位置,因此对于快速的随机取得对象的需求,使用ArrayList实现执行效率上会比较好. 


    LinkedList:是用双向链表实现的
    删、增速度较快。
    两个都是类,要创建对象。用new创建。

    LinkedList是采用链表的方式来实现List接口的,它本身有自己特定的方法,如: addFirst(),addLast(),getFirst(),removeFirst()等. 由于是采用链表实现的,因此在进行insert和remove动作时在效率上要比ArrayList要好得多!适合用来实现Stack(堆栈)与Queue(队列),前者先进后出,后者是先进先出.

    在删除可插入对象的动作时,为什么ArrayList的效率会比较低呢?

    解析: 因为ArrayList是使用数组实现的,若要从数组中删除或插入某一个对象,需要移动后段的数组元素,从而会重新调整索引顺序,调整索引顺序会消耗一定的时间,所以速度上就会比LinkedList要慢许多. 相反,LinkedList是使用链表实现的,若要从链表中删除或插入某一个对象,只需要改变前后对象的引用即可!

  • 相关阅读:
    YII框架实现排序
    YII2 实现登录时候修改最新登录时间
    YII框架下实现密码修改
    json在PHP中应用技巧
    更换Python pip库镜像地址
    Python3创建RIDE桌面快捷方式的另一种方法
    谈谈测试人员的基本素养
    《微软的软件测试之道》阅读笔记
    PPT如何一页多张打印且铺满整个页面
    Linux 在线模拟器
  • 原文地址:https://www.cnblogs.com/bsfl-study/p/9231222.html
Copyright © 2011-2022 走看看