[java] 集合

java体系里的集合从继承关系来看可分为两个部分,一个是Map接口下的,另一个是Collection下的。两个接口下的实现类,接口非常之多。在JDK1.8中,Map的一级子类大概如下:

注意,这里仅仅是一级子类,他们下面还有许多实现类,想全部弄懂是一件不可能的事情也是没有必要的事情。下面我将map下面较为常见的类和接口做了一个总结,他们的关系如下:

灰色:接口interface

橙色:类class

我们常见的HashMap,ConcurrentHashMap,HashTable和TreeMa都已经包括在了其中。他们分别的实现可以参考我的另一篇博文:链接

Collection的一级子类在这里不再列出来。同样我们将Collection下面常用的类做一个总结,其结构如下:

很有意思的现象是和map相比,

  1. Collection在最上层就继承了Iterable接口,这意味着从设计的角度来讲,整个Collection架构都是设计为可被用于遍历循环的。
  2. Collection在定义的时候就有一个参数<E>,而Map在定义的时候参数即为<K,V>,这其实意为着在设计之处,整个Map架构就是用于键值对,key-value这样的模式,而Collection这是一个纯粹的容器,可以放任何的对象并且对他们进行批量操作
  3. 这个图不完全准确,但是大体的架构和继承关系是正确的。仅供参考。

猜你喜欢

转载自blog.csdn.net/topdeveloperr/article/details/81107784