集合小结

集合类总结

List

Iterator(迭代器):读取删除、删除操作,支持fail-fast机制;

Enumeration(枚举类):只能读取,不支持fail-fast机制;

fail-fast机制:读取数据时判断当前集合对象是否被别的线程修改过;

ArrayList

  1. 动态数组,默认初始值:10,支持序列化,
  2. 扩容方式:newCapacity = oldCapacity + (oldCapacity >> 1);再与最小值最大值比较;
  3. 线程不安全,方法未使用synchronized关键字修饰;
  4. 支持Iterator,存在fail-fast机制,不支持Enumeration;
  5. 应用环境:频繁随机访问;避免中间插入、删除操作;用于单线程操作;
  6. 遍历:下标遍历最快

LinkedList

  1. 双向循环链表,初始值:0,支持序列化;
  2. 扩容方式:随用随长;
  3. 线程不安全,fail-fast机制,方法未使用synchronized关键字修饰;
  4. 支持Iterator,存在fail-fast机制,不支持Enumeration;
  5. 应用环境:频繁中间插入、删除操作;用于单线程操作;可以作为FIFO的队列,可以作为FILO的栈;
  6. 遍历:

Vector

  1. 动态数组,默认初始值:10,不支持序列化;
  2. 扩容方式:newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity),capacityIncrement为构造方法中指定的增长因子;
  3. 线程安全,方法使用synchronized关键字修饰;
  4. 支持Iterator,存在fail-fast机制,支持Enumeration;
  5. 应用环境:多线程操作;
  6. 遍历:for(Object obj:Object[])方式最快

Stack

  1. 继承Vector,数组实现,先进后出(FILO, First In Last Out)队列,不支持序列化。
  2. push():数组末尾增加追加元素;pop():数组末尾删除元素;peek():返回数组末尾元素;
  3. 继承Vector,方法使用synchronized关键字修饰;
  4. 支持Iterator,存在fail-fast机制,支持Enumeration;

Map

内存地址值

hashCode()`:

equals():

HashMap

TreeMap

HashTable

WeakHashMap

LinkedHashMap

Set

HashSet

TreeSet

LindHashSet