集合类总结
List
Iterator(迭代器):读取删除、删除操作,支持fail-fast机制;
Enumeration(枚举类):只能读取,不支持fail-fast机制;
fail-fast机制:读取数据时判断当前集合对象是否被别的线程修改过;
ArrayList
- 动态数组,默认初始值:10,支持序列化,
- 扩容方式:newCapacity = oldCapacity + (oldCapacity >> 1);再与最小值最大值比较;
- 线程不安全,方法未使用
synchronized
关键字修饰; - 支持Iterator,存在fail-fast机制,不支持Enumeration;
- 应用环境:频繁随机访问;避免中间插入、删除操作;用于单线程操作;
- 遍历:下标遍历最快
LinkedList
- 双向循环链表,初始值:0,支持序列化;
- 扩容方式:随用随长;
- 线程不安全,fail-fast机制,方法未使用
synchronized
关键字修饰; - 支持Iterator,存在fail-fast机制,不支持Enumeration;
- 应用环境:频繁中间插入、删除操作;用于单线程操作;可以作为FIFO的队列,可以作为FILO的栈;
- 遍历:
Vector
- 动态数组,默认初始值:10,不支持序列化;
- 扩容方式:newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity),
capacityIncrement
为构造方法中指定的增长因子; - 线程安全,方法使用
synchronized
关键字修饰; - 支持Iterator,存在fail-fast机制,支持Enumeration;
- 应用环境:多线程操作;
- 遍历:for(Object obj:Object[])方式最快
Stack
- 继承Vector,数组实现,先进后出(FILO, First In Last Out)队列,不支持序列化。
push()
:数组末尾增加追加元素;pop()
:数组末尾删除元素;peek()
:返回数组末尾元素;- 继承Vector,方法使用
synchronized
关键字修饰; - 支持Iterator,存在fail-fast机制,支持Enumeration;
Map
内存地址值
:
hashCode()`:
equals()
: