集合框架
- 集合框架的分类
- List接口中有哪些实现?有什么区别
- Queue接口中有哪些实现类
- LinkedLIist与ArrayList有什么区别
- Set接口中有哪些实现类,有什么区别
- Map中有哪些常用的接口
- HashMap与HashSet有什么区别
- HashTable与HashMap有什么区别
- TreeMap和TreeSet有什么区别
一. 集合框架的分类
1.集合框架:Controller和Map。所有集合类都位于java.util包下,支持多线程的集合类位于java.util.concurrent包下。
2.Controller:List接口,Queue接口,Set接口
3.Map:HashMap(常用),HashTable,SortedMap
二. List接口中有哪些实现?有什么区别
1.List接口实现类:Vector(Stack),ArrayList
共同点:
1.都继承List接口
2.都是有序集合
3.数据允许同步
不同点:
1.同步性不同。Vector是线程安全,Array是线程不安全。
2.数据增长不同。初始容量都为10,当存储元素超过集合的长度的时候,Vector增长一倍,而ArrayList增长为0.5倍
三.Queue接口中有哪些实现类,有什么区别
Queue:Deque接口–》LinkedList和ArrayDeque实现,PriorityQueue接口
四.LinkedLIist与ArrayList有什么区别
不同点:
1.ArrayList继承于 AbstractList,LinkedList继承于 AbstractSequentialList;
2.ArrayList基于动态数组的数据结构, LinkedList基于双向链表。
3.LinkedList没有实现自己的 Iterator,但是有 ListIterator和 DescendingIterator
4.LinkedList需要更多的内存,因为 ArrayList的每个索引的位置是 实际的数据,而 LinkedList中的每个节点中存储的是实际的数据和前后节点的位置.
5.LinkedList 是基于链表的,因此不像ArrayList需要扩容机制。
6.LinkedList基于双向链表实现,元素都可以为null。
相同点:
1.ArrayList 和 LinkedList都是非同步的集合。
2.ArrayList 和 LinkedList都是线程不安全
五.Set接口中有哪些实现类
Set:Hashset–》LinkedHashSet实现,SortedSet–》TreeSet实现,EnumSet
六.Map中有哪些常用的接口
Map(常见):HashMap,HashTable,SortedMap
七HashMap与HashSet有什么区别
HashMap | HashSet |
---|---|
HashMap实现了Map接口 | HashSet实现了Set接口 |
HashMap储存键值对 | HashSet存储对象 |
HashMap中使用键对象来计算hashcode值 | HashSet使用成员对象来计算hashcode值, |
八 HashTable与HashMap有什么区别
共同点:
1.HashMap和Hashtable的底层实现都是数组+链表结构实现。
2.HashMap继承了AbstractMap,HashTable继承Dictionary抽象类,两者均实现Map接口
不同点:
1.baiHashtable是线程du安全,而HashMap则非线程安全。
2.HashMap的初始容量为16,Hashtable初始容量为11,两者的填充因子默认都是0.75。
九TreeMap和TreeSet有什么区别
相同点:
1.TreeMap和TreeSet都是非同步集合
2.TreeMap和TreeSet都是有序的集合
不同点:
1.TreeSet和TreeMap分别实现Set和Map接口
2.TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value
3.TreeSet中不能有重复对象,而TreeMap中可以存在