文章目录
说说JAVA中的容器框架

JAVA中容器本质上是用于存储和管理一组对象的类或接口,作用为:
- 统一管理对象集合
- 提供通用、规范的操作接口
- 提升开发效率和代码可读性
大体分为两类Collection和Map ,根据接口继承体系分类:
Collection: 用于存储单个元素。子类分为三种及个自特点- List:有索引,可重复,保证插入顺序。
- Set:不允许重复元素。不保证插入顺序。通过
hashcode()和equals()进行去重。 - Queue:先进先出。只允许在两端进行操作。无索引。
Map: 用于存储键值对映射。- SortedMap:按照key有序。不能存储key为null的元素。
ArrayList和LinkedList的区别
| 方面 | ArrayList | LinkedList |
|---|---|---|
| 底层数据结构 | 底层基于动态数组实现 | 底层基于双向链表实现 |
| 访问效率 | 支持随机访问,通过索引获取元素的时间复杂度为O(1) | 不支持随机访问,访问元素需要从头或者尾部遍历链表,时间复杂度为O(n) |
| 插入效率 | 尾部插入时间复杂度O(1)。头部或中间插入需要移动后续元素,时间复杂度为O(n) | 头部、中间和尾部插入时间复杂度都为O(1) |
| 使用场景 | 频繁随机访问或者查询密集型场景推荐。 | 频繁在列表头部/中间插入或删除时推荐 |