集合的体系:
*Collection单列集合的根接口
*List接口:有序,有索引,可重复
*ArrayList类:数组实现
*LinkedList类:链表实现
*Vector类:数组实现,线程安全,查 找和增删速度介于ArrayList和LinkedList之间。Vector基本被ArrayList替代。ArrayList也可以通过工具类实现线程安全。
*Set接口:
*HashSet类:哈希算法实现
**LinkedHashSet类:底层是链表实现,因此是有序的,可以按顺序存入和读取!!
*TreeSet类:二叉树算法实现,排序。
--数组实现查找快,可直接通过索引定位。增删慢,需改变后续所有位置。
--链表实现增删快,只需更改前后链表指向地址。查找慢,必须从前后逐个查找。
*Map双列集合接口
*HashMap类:哈希算法实现
*LinkedHashMap类:链表+哈希算法实现
*TreeMap类:二叉树算法实现
*Hashtable类:哈希算法实现
--单列集合Set底层是依赖双列集合Map实现的。
--HashMap和Hashtable的区别
1.HashMap线程不安全,效率高;Hashtable线程安全,效率低;
2.HashMap可以存储null键和null值;Hashtable不能;
|
|