ArrayList,LinkedList,Vector三者有什么区别呢?
下文笔者讲述Arraylist,LinkedList,Vector三个集合对象的区别说明,如下所示
ArrayList,LinkedList,Vector三者共同点
ArrayList,LinkedList,Vector三者都实现了List接口 因为实现了List接口,所以三者都是有序集合 三者的功能非常相似 都对外提供搜索、添加、删除的功能 三者都对外提供迭代器的遍历方式上面是笔者讲述三者的相同点,那么三者的不同点是什么呢?下文笔者将一一道来,如下所示
ArrayList,LinkedList,Vector三者区别
区别1: 底层存储不同 ArrayList和Vector两个的底层存储采用的是动态数组 LinkedList底层数据存储采用的是双向循环链表 区别2:随机访问效率不同 ArrayList和Vector比LinkedList 使用索引随机访问时效率比LinkedList高 区别3:增加和删除效率 在非尾部的位置增加和删除元素时, LinkedList比"ArrayList和Vector"效率高 区别4:占用大小 LinkedList比"ArrayList和Vector"占用空间大 我们从LinkedList的数据结构上可以看出其占用大 区别5:线程安全上 ArrayList和LinkedList不是线程安全 Vector中使用synchronized同步锁,来保证线程安全 区别6:容量变化上 ArrayList和Vector会根据实际大小估算出扩容的大小 Vector每次会增加1倍容量 ArrayList每次会增加50%容量 LinkedList采用指针的模式,无需扩容,理论上无限大
从以上“ArrayList,LinkedList,Vector三者的区别上”,我们可以总结出"ArrayList,LinkedList,Vector"的应用场景 ArrayList适用于: 频繁随机访问集合中元素 Vector适用于: 需线程安全的操作元素 LinkedList适用于: 频繁的插入和删除操作的数据结构
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。