Java集合框架
集合有两大接口Collection
Map
- List:有序,可重复
- Set:无序,不可重复
- Queue:按特定的排队规则来确定先后顺序,存储的元素是有序的,可重复的
- Map:键值对
List:
ArrayList
:Object[]
数组Vector
:Object[]
数组LinkedList
: 双向链表
Set:
- HashSet(无序,唯一):基于HashMap实现的,底层使用HashMap来保存元素
- LinkedHashSet:LinkedHashSet是HashSet的子类,并且其内部是通过
ListedHashMap
来实现 - TreeSet(有序,唯一):红黑树
Queue:
- PriorityQueue:
Object[]
数组来实现二叉堆 - ArrayQueue:
Object[]
数组 + 双指针
Map:
- HashMap:
- LinkedHashMap:
- Hashtable:
- TreeMap:
Collection -> List
ArrayList
是List
的主要实现类,底层使用Object[ ]
存储,适用于频繁的查找工作,线程不安全Vector
是List
的古老实现类,底层使用Object[ ]
存储,线程安全的
ArrayList与LinkedLList区别
- 线程安全:
ArrayList
和LinkedList
都是不同步的,也就是不保证线程安全; - 底层数据结构:
Arraylist
底层使用的是Object
数组;LinkedList
底层使用的是 双向链表 数据结构