开发者社区> 问答> 正文

Vector, ArrayList, LinkedList的区别是什么?

Vector, ArrayList, LinkedList的区别是什么?

展开
收起
问问小秘 2020-01-09 10:27:58 3091 0
3 条回答
写回答
取消 提交回答
  • 不断奔跑的开发者

    这三个类都实现了java.util.List接口。 ArrayList:动态数组实现的,对于数据的随机Get和Set,或少量数据的插入和删除 效率较高,同时ArrayList线程不安全,可重复。 Vector:使用方法和内部实现基本和ArrayList一样,但是它是线程安全的 LinkedList:链表实现的,插入大量数据的时候效率较高

    2020-01-09 10:42:19
    赞同 1 展开评论 打赏
  • 为之则易,不为则难

    Vector和ArrayList的底层都是使用数组的方式实现,实现方式相同,插入,删除慢,查询快,不过Vector加了synchronized关键字,所以是线程安全的,ArrayList则是线程不安全的, LinkedList的实现方式的双向链表,插入,删除快,查询慢

    2020-01-09 10:42:14
    赞同 展开评论 打赏
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    都是集合类,LinkedList采用链表加数组数据结构实现,ArrayList则数据结构为数组实现,Vector相较ArrayList,线程安全

    1、Vector、ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储。

    2、List中的元素有序、允许有重复的元素,Set中的元素无序、不允许有重复元素。

    3、Vector线程同步,ArrayList、LinkedList线程不同步。

    4、LinkedList适合指定位置插入、删除操作,不适合查找;ArrayList、Vector适合查找,不适合指定位置的插入、删除操作。

    5、ArrayList在元素填满容器时会自动扩充容器大小的50%,而Vector则是100%,因此ArrayList更节省空间。

    2020-01-09 10:39:11
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
消电行业数据中台解决方案白皮书 立即下载
(终极版)2020阿里云金融数据中台报告 立即下载
2020年中国乳制品行业数据中台研究报告 立即下载