List
ArrayList
- 底层结构: 数组
- 插入/删除原理: 数组动态自动扩容和数组复制
- 其他: 线程不安全,支持随机访问,查询速度快,增删慢
LinkedList
底层结构: 链表
插入/删除原理: 改变指针
其他: 线程不安全,不支持随机访问,查询速度慢,增删快
Vector
底层结构: 数组
插入/删除原理: 数组动态自动扩容和数组复制
其他: 线程安全,支持随机访问,查询速度快,增删慢
数组与链表:
【数组】要求在内存中必须是连续的地址;可以直接访问其中任意一个数据,即随机访问
【链表】在内存中不要求地址连续;不可以直接访问其中任意一个数据,必须从第一个元素开始遍历至需要查询的数据
Set
- HashSet是基于Hash算法实现的,其综合性能优越于TreeSet。
- TreeSet可以实现自动排序。
Map
- HashMap: 线程不安全,不自动排序
- TreeMap: 线程不安全,自动根据键排序
- HashTable: 线程安全,不自动排序