Collection的父接口 Iterable接口,可迭代的接口
Iterator:迭代器
hasNext()
Next()
remove()
简易版迭代器: foreach
Collection(I)
|- List(I) - 有序,并且可以有重复值
|- ArrayList(C)
数据结构:顺序结构
特点: 查询快,增删慢
|- LinkedList(C)
数据结构:链式结构
特点: 查询慢,增删快
|- Vector(C)
数据结构:顺序结构
特点: 查询快,增删慢
带有锁
|- Stack(C) - 作为栈实现
|- Set(I) - 无序且唯一
|- HashSet(C)
数据结构:hash表(数组 + 链表)
|- SortedSet(I)
|- TreeSet(C)
数据结构:二叉树
|- Queue(I) - 先进先出
|-Deque(I) - 双端队列/栈
|- LinkedList(C)
Map(I)
|- HashMap(C) - 普通存储数据
数据结构:哈希表(散列表)|红黑树
默认初始容量:16
扩容因子:0.75
|-LinkedHashMap(C) - 存储有插入顺序
数据结构: 哈希表+双向链表
|-SortedMap(I)
|-TreeMap(C) - 对Map进行排序
|-Hashtable(C)
数据结构:哈希表
|-ConcurrentHashMap(C) - 并发(线程)
自然排序:Comparable(I)
重写compareTo() -> 比较 this 和 obj
this 比 obj 小则返回负数
this 比 obj 大则返回正数
this 和 obj 相同则返回0 -> 不存入
this在前,obj在后 正序
obj在前,this在后 倒序
自定义排序: Comparator(I)
重写compare() -> 比较 o1 和 o2
正序: 前比后
倒序: 后比前
排序方式:
数组
Arrays.sort()
List
Collections.sort()
Set
new TreeSet()
Map
new TreeMap()