Set 如何实现排序¶
一、HashSet¶
无序。
二、LinkedHashSet¶
按插入顺序排序(内部是 LinkedHashMap)。
三、TreeSet¶
按元素自然顺序或 Comparator 排序。
自定义排序¶
四、对比¶
| 顺序 | |
|---|---|
| HashSet | 无序 |
| LinkedHashSet | 插入顺序 |
| TreeSet | 排序顺序 |
五、怎么选¶
- 只去重:HashSet。
- 要插入顺序:LinkedHashSet。
- 要排序:TreeSet。
六、底层¶
- HashSet:HashMap。
- LinkedHashSet:LinkedHashMap。
- TreeSet:TreeMap(红黑树)。
一句话
TreeSet 排序,LinkedHashSet 保序,HashSet 快。