Collection体系
List接口
有序可重复
ArrayList
- 基于数组,初始长度10.
- 动态扩容的实现:创建一个更大的空间然后把原先所有的元素拷贝过去.
- 随机访问性能好,插入删除性能差
LinkedList
- 基于双链表
- 随机访问性能差,插入删除性能好
Set接口
基于Map
注意避坑--对Set或Map操作会影响到对应的Map或Set
无重复元素
判断重复:equals方法
约定
- 同一个对象必须始终返回相同的hashCode
- 两个对象的equals返回true,必须返回相同的hashCode
- 两个对象不等,也可能返回相同的hashCode
HashSet
- 最高效最常用
- 无序
LinkedHashSet
- 有序(插入顺序)
TreeSet
- 二叉树结构
- 排序
- 若元素是自定义类型,需制定排序方式
Map
映射关系--key-value(键值对)
key唯一,不可重复
value可以重复
HashMap
- 无序
LinkedHashMap
- 有序
TreeMap
- 排序
ConcurrentHashMap
- 线程安全
Properties属性类
Iterator(迭代器)
- 基本功能--遍历集合中的所有元素,除了List集合有一个独有的迭代器Listiterator,别的集合类都是一样的。
- 每个集合类都有iterator(),调用该方法就能得到迭代器对象。
- 如果List集合使用迭代器,建议使用ListIterator,比原有的迭代器多了一些方法。
- 除了使用迭代器遍历集合元素,也可以使用加强for和Java8的foreach()方法。如果是List集合,使用for循环也能做到