集合框架基本知识

集合框架

  1. 集合框架的分类
  2. List接口中有哪些实现?有什么区别
  3. Queue接口中有哪些实现类
  4. LinkedLIist与ArrayList有什么区别
  5. Set接口中有哪些实现类,有什么区别
  6. Map中有哪些常用的接口
  7. HashMap与HashSet有什么区别
  8. HashTable与HashMap有什么区别
  9. 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有什么区别

HashMapHashSet
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中可以存在

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值