Java中Vector、ArrayList、LinkedList的区别

首先VectorArrayListLinkedList都实现了List接口,List用于存放多个元素,能够维护元素的次序,并且允许元素重复,三个具体实现类的区别如下:

  1. ArrayList底层是通过数组实现的,能够对元素进行快速随机访问,当数组大小不满足存储能力时,需要将存在的数据复制到新的存储空间,默认的扩展是(oldCapacity * 3)/2 + 1即扩展50%+1,当从ArrayList中间插入或删除元素时,需要对数组进行复制和移动,导致插入删除速度慢,因此,它适合随机查找和遍历,不适合插入和删除。

  2. Vector底层也是数组实现的,但支持线程同步,访问速度比ArrayList慢,需要扩容时默认为扩展一倍

  3. LinkedList底层是链表结构存储数据的,插入删除速度快,但访问遍历速度较慢,占用空间大

posted @ 2020-11-04 16:36  流光幻影  阅读(81)  评论(0)    收藏  举报