集合分为 Collection 和 Map
List集合
有序可重复
ArrayList:
- 底层是一个数组
- 优点访问数据方便,数据增删慢
- 默认的大小是10
- 线程不安全的
- 添加数据容量不够时候会创建一个新的数组然后将数据复制过去
System.arraycopy();
LinkedList:
- 底层是通过链表实现
- 方便数据的插入,删除,不利于数据的查询
Vector:
- 底层是一个数组
- 线程安全的
面试题:
ArrayList和Vector的区别:
ArrayList和Vector底层都是数组
ArrayList线程安全的Vector线程不安全的
ArrayList扩容是增加原来的一半,Vector增加的是原来的一倍
ArrayList不可以手动设置扩容因子,Vector可以设置
ArrayList和LinkedList区别:
相同:
同样是线程不安全的
不同:
ArrayList底层是一个数组 方便数据查询,不便增删
LinkedList底层是一个链表 方便增删,不方便查询