面试题:ArrayList、LinkedList、Vector三者的异同?
同:三个类都是实现了List接口(Collection的子接口之一),存储数据的特点相同:存储有序的、可重复的数据

不同:
*              |----ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] elementData存储
* |----LinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高;底层使用【双向链表】存储
* |----Vector:作为List接口的古老实现类;线程安全的,效率低;底层使用Object[] elementData存储

双向链表增删的示意图:

面试题:
请问ArrayList/LinkedList/Vector的异同?谈谈你的理解?ArrayList底层
是什么?扩容机制?Vector和ArrayList的最大区别?
 ArrayList和LinkedList的异同
二者都线程不安全,相对线程安全的Vector,执行效率高。
此外,ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。对于
随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增
和删除操作add(特指插入)和remove,LinkedList比较占优势,因为ArrayList要移动数据。
 ArrayList和Vector的区别
Vector和ArrayList几乎是完全相同的,唯一的区别在于Vector是同步类(synchronized),属于
强同步类。因此开销就比ArrayList要大,访问要慢。正常情况下,大多数的Java程序员使用
ArrayList而不是Vector,因为同步完全可以由程序员自己来控制。Vector每次扩容请求其大
小的2倍空间,而ArrayList是1.5倍。Vector还有一个子类Stack。

最新文章

  1. [SAP ABAP开发技术总结]ABAP调优——代码优化
  2. mybatis中的mapxml的语法
  3. BFS:Meteor Shower(POJ 3669)
  4. HDU 5003 Osu!
  5. 1.6.9 UIMA Integration
  6. Kill 所有MySQL进程
  7. Docker技术学习
  8. HTTP基础知识
  9. WP8.1开发中关于如何显示.gif格式动态格式图片方法
  10. 转:【Java并发编程】之二十三:并发新特性—信号量Semaphore(含代码)
  11. 大白话说Java反射:入门、使用、原理
  12. PHPWord导出word文档
  13. PAT 1116 Come on! Let's C
  14. 【XSY1591】卡片游戏 DP
  15. linux系统的三种网络连接模式
  16. 动画优化、客户端存储、历史记录、worker
  17. 背水一战 Windows 10 (71) - 控件(控件基类): UIElement - RenderTransform(2D变换), Clip(剪裁)
  18. C# 获取文件名及扩展名【转】
  19. Bate冲刺四——《WAP团队》
  20. oracle最精简客户端(3个文件+1个path变量就搞定oracle客户端)

热门文章

  1. Android学习之Broadcast初体验
  2. teprunner测试平台Django引入pytest完整源码
  3. DFS 深搜专题 入门典例 -- 凌宸1642
  4. Kubernetes 常用日志收集方案
  5. [Fundamental of Power Electronics]-PART I-4.开关实现-4.1 开关应用
  6. 安装Dynamics CRM Report出错二
  7. Go-21-结构体
  8. 2. Mybatis Select
  9. HUAWEI AppGallery Connect获得SOC国际权威认证,多举措保护信息和隐私安全
  10. Matrix Chain Multiplication UVA - 442