美文网首页
List集合中的知识点

List集合中的知识点

作者: 青藤绿 | 来源:发表于2017-05-12 20:57 被阅读21次

    ArrayList

    1、ArrayList 是一个数组队列,相当于动态数组,为线程不安全
    2、继承了AbstractList,实现了List,提供了添加、删除、修改、遍历等功能。
    3、实现了RandmoAccess接口,提供了随机访问功能。
    4、ArrayList通过一个数组去保存数据的,默认容量大小是10,当ArrayList容量不足以容纳全部元素时,ArrayList会重新设置容量:新的容量=“(原始容量x3)/2 + 1”。

    LinkedList

    1、LinkedList 是一个继承于AbstractSequentialList的双向链表,提供了随机访问功能,顺序访问会非常高效,而随机访问效率比较低。,它也可以被当作堆栈、队列或双端队列进行操作,为线程不安全
    2、实现了List,提供了添加、删除、修改、遍历等功能。
    3、实现Deque接口,即能将LinkedList当作双端队列使用。
    4、索引的原理是比较“location”和“双向链表长度的1/2”;若前者大,则从链表头开始往后查找,直到location位置;否则,从链表末尾开始先前查找,直到location位置。

    Vector

    Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。

    总结:

    ArrayList 是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
    LinkedList 是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率高。
    Vector 是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。

    相关文章

      网友评论

          本文标题:List集合中的知识点

          本文链接:https://www.haomeiwen.com/subject/ziantxtx.html