Java集合概述
List、Set、Map三者的区别
List | Set | Map | |
---|---|---|---|
数据格式 | 元素有序可重复 | 元素无序不重复 | key无序不重复,value无序可重复 |
是否实现了Collection接口 | 是 | 是 | 否 |
集合框架底层数据结构总结
List:
- ArrayList:Object[]数组
- Vector:Object[]数组
- LinkedList:双向链表(jdk1.6之前为循环链表,jdk1.7取消了循环)
Set:
- HashSet(无序,唯一):基于HashMap实现的,底层采用HashMap来保存元素
- LinkedHashSet:LinkedHashSet是HashSet的子类,并且其内部通过LinkedHashMap来实现。
- TreeSet(有序,唯一):红黑树(自平衡的排序二叉树)
Map:
- HashMap:由数组+链表组成。jdk1.8以后在解决哈希冲突时,当链表长度大于阈值(默认为