美文网首页Java基础
ArrayList Vector LinkedList的区别及其

ArrayList Vector LinkedList的区别及其

作者: 王元 | 来源:发表于2017-03-14 11:36 被阅读118次

    1,ArrayList,LinkedList,Vector这三个类都实现了java.util.List接口,但它们有各自不同的特性

    2,ArrayList Vector内部实现都是数组,LinkedList是一个双向列表

    3,LinkedList 是基于链表结构实现,所以在类中包含了 first 和 last 两个指针(Node)。Node 中包含了上一个节点和下一个节点的引用,这样就构成了双向的链表。每个 Node 只能知道自己的前一个节点和后一个节点,但对于链表来说,这已经足够了。

    4,Vector是线程安全的,适合多线程下的编程。ArrayList,LinkedList是线程不安全的,适合单线程下的编程。因此Vector的操作比ArrayList,LinkedList开销要大

    5,LinkedList适合增删操作,因为只需要改变指针,而查询某个元素必须从第一个开始,因此时间复杂度是O(n)。ArrayList 适合查询操作,查询某个元素的时间复杂度是O(1);

    相关文章

      网友评论

        本文标题:ArrayList Vector LinkedList的区别及其

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