1、分类
Collection接口
- List,按照插入顺序保存元素
- Set,插入元素不能重复且无序
- Queue,先进先出
Map接口
键值对的一组映射。
2、实现类
2.1 List
ArrayList
- 基于数组实现
- 优点在于随机访问列表中的元素速度快
- 缺点在于插入删除效率低
LinkedList
- 当实现Queue接口的时候,添加了element()/peek()/poll()/offer()/remove()方法
- getFirst()/element()和peek()
- 获取列表第一个元素
- 列表为空时,element()抛出NoSuchElementException异常,peek()返回null
- removeFirst()/remove()和poll()
- 删除列表第一个元素
- 列表为空时remove()抛出异常,poll()返回null
2.2 Set
Set的最重要的应用就是判断一个元素是否在一个Set中,* contains()/containsAll() ,因此查找就成了Set中最重要的操作,通常会选择一个 HashSet *来实现快速查找。
HashSet
采用散列函数,查找速度较快,顺序与添加的顺序可能不同
TreeSet
元素存储在红-黑树中,对元素进行排序
LinkedHashSet
既保存了查找的速度,也保存了插入的顺序
3、迭代器Iterator
Iterator的真正威力在于:统一了对所有容器类的遍历