本文以Java10为背景,Java8到Java10只是增加了一些方法,总体结构没变。
转载请注明:https://blog.csdn.net/ydonghao2/article/details/82221628
Tal.Yuan
在写了解集合之前,我们先了解一下在Java中(或者C++中也一样)的一种模式:
之所以这样设计是因为interface 一般起的作用是模板的作用,希望继承这个interface 的class都用这些方法;而abstract class的 则是对应一些默认方法,但是我觉得在Java8之后这种形式会减少,因为Java提供了interface可以实现default 方法的功能;最终的class就是最终的结果了。
这样设计的第二个好处是可以更方便地使用Java的多态性。
有了上面的思想之后,那我们可以按照这种方法看jdk提供的集合:先看所有jdk提供的interface ,再具体看每个interface 的实现,再看每个abstract class和class(以点破面的想法)。
那么jdk提供了多少个集合相关的interface 呢?请看下图:
然后我们需要根据上图一个一个接口去看他们的实现:
Iterator :
身为一个集合:那么遍历集合中的元素是最基本的功能,JDK提供了一个iterator迭代器。
- Iterator,Iterable,ListIterator https://blog.csdn.net/ydonghao2/article/details/82223381
- Spliterator https://blog.csdn.net/ydonghao2/article/details/81225050
Map:
- Map族系详解 —— Map https://blog.csdn.net/ydonghao2/article/details/81064924
- Map族系 —— AbstractMap https://blog.csdn.net/ydonghao2/article/details/81077783
-
Map族系——HashMap https://blog.csdn.net/ydonghao2/article/details/81079249
Collectin:
待更。