常用集合框架

1.概览

 ps:图中所示关系后者不一定直接继承(实现)前者,会这么画是因为笔者认为画出完整关系太过复杂且没必要记住完整关系图,此图仅用来辅助记忆常用集合框架。

 

2.对比介绍

Collection接口与Map接口:Collection里放的是对象,Map里放的是键值对(接口并不能直接使用,所以这里指的是它俩各自的实现类)。

List接口与Set接口:List有序、可以重复,Set无序、元素不可以重复。List有序是指内部元素是按放入顺序排列的,而Set内部元素是打乱的,并不会按照你放入的顺序排列。当你依次迭代List并打印时,打印的顺序和放入先后顺序完全一致,而Set不是。

ArrayList类与LinkedList类:两者都是线程不安全。ArrayList底层是数组结构实现,相比LinkedList的双向链表,查询快但增删慢。

HashSet类与TreeSet类:HashSet不支持排序,且能放入null值(由于Set不能重复,故也最多只能放一个null);TreeSet支持排序,且不能放入null值。

HashMap、LinkedHashMap、TreeMap、Hashtable、ConcurrentHashMap:HashMap是最常用Map,允许键、值为null,线程不安全,不支持排序,内部元素也不是有序的;LinkedHashMap相比HashMap,内部元素有序(类似List);TreeMap相比HashMap,支持排序(类似TreeSet),且键不能为null;Hashtable相比HashMap,线程安全并且键、值均不允许为null;ConcurrentHashMap与Hashtable一样,也是线程安全,键、值也不允许为null,但性能要比Hashtable高,因为是分段锁。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值