Java 容器类内部使用的数据结构
- ArrayList
- LinkedList
- HashMap
- TreeMap
- HashSet
- TreeSet
1.ArrayList
存储结构: Object[] elementData(固定数组,有时会导致resize操作)
构造器:
参数声明 | 描述 |
---|---|
ArrayList(int initialCapacity) | 初始化数组大小 |
ArrayList() | public ArrayList() {this(10);} |
public ArrayList(Collection c) | 初始化数组大小等于c.size() |
描述: 动态数组
特点: 查快,添快(不超过数组大小时),删慢
2.LinkedList
存储结构: Entry(E) 链表
特点: 查慢,添快,删快
3.HashMap
存储结构: Entry[] table(固定数组,有时会导致resize操作)
散列方式: 将key.hashCode()映射到table.length之内(resize操作会导致每个元素重新映射到新的table.length之中)
散列冲突解决方案: 头插入式链表
特点: 插入快,查找快,删除快
4.TreeMap
存储结构: Entry(K,V)红黑树
二叉查找树比较基础: Comparator
特点: 插入lg(n),查找lg(n),删除lg(n)