一张图让你看清Java集合类(Java集合类的总结)

现在关于Java集合类的文章很多,但是我最近看到一个很有意思图片,基本上把Java集合的总体框架都给展现出来了,很直观。

  

5416b7d500012eea05000306.jpg


http://www.imooc.com/wenda/detail/31403  大图


  在这里,集合类分为了Map和Collection两个大的类别。


  处于图片左上角的那一块灰色里面的四个类(Dictionary、HashTable、Vector、Stack)都是线程安全的,但是它们都是JDK的老的遗留类,现在基本都不怎么使用了,都有了对应的取代类。其中Map是用来代替图片中左上角的那个Dictionary抽象类(Map的官方文档里面有说明)。官方推荐使用Map接口来代替它。同样对于HashTable,官方推荐ConcurrentHashMap来代替。接着下面的Vector是List下面的一个实现类。


  接着最上面的粉红色部分是集合类所有接口关系图。其中Map的结构比较简单,而Collection的结构就相对复杂一些。Collection有三个继承接口:List、Queue和Set。


  接下来的绿色部分则是集合类的主要实现类了。这也是我们最经常使用的集合类了。


  按照实现接口分类:

  实现Map接口的有:EnumMap、IdentityHashMap、HashMap、LinkedHashMap、WeakHashMap、TreeMap

  实现List接口的有:ArrayList、LinkedList

  实现Set接口的有:HashSet、LinkedHashSet、TreeSet

  实现Queue接口的有:PriorityQueue、LinkedList、ArrayQueue

  根据底层实现的数据结构分类:

  底层以数组的形式实现:EnumMap、ArrayList、ArrayQueue

  底层以链表的形式实现:LinkedHashSet、LinkedList、LinkedHashMap

  底层以hash table的形式实现:HashMap、HashSet、LinkedHashMap、LinkedHashSet、WeakHashMap、IdentityHashMap

  底层以红黑树的形式实现:TreeMap、TreeSet

  底层以二叉堆的形式实现:PriorityQueue


  最下方的一个整块都是java.util.concurrent包里面的类,按照包名我们就可以知道这个包里面的类都是用来处理Java编程中各种并发场景的

  工具推荐:http://grepcode.com/。阅读代码神器。这个源码阅读站点不但包含了绝大部分的Java类库源码,而且对源码中间的注释、跳转等做了很好的优化,有了它,保证你的源码阅读效率大大提升。

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值