Java中Vector、ArrayList、LinkedList的区别
首先Vector、ArrayList、LinkedList都实现了List接口,List用于存放多个元素,能够维护元素的次序,并且允许元素重复,三个具体实现类的区别如下:
-
ArrayList底层是通过数组实现的,能够对元素进行快速随机访问,当数组大小不满足存储能力时,需要将存在的数据复制到新的存储空间,默认的扩展是(oldCapacity * 3)/2 + 1即扩展50%+1,当从ArrayList中间插入或删除元素时,需要对数组进行复制和移动,导致插入删除速度慢,因此,它适合随机查找和遍历,不适合插入和删除。
-
Vector底层也是数组实现的,但支持线程同步,访问速度比ArrayList慢,需要扩容时默认为扩展一倍
-
LinkedList底层是链表结构存储数据的,插入删除速度快,但访问遍历速度较慢,占用空间大

浙公网安备 33010602011771号