框架的接口
框架的接口就是该框架支持的抽象的数据类型。
包含四种核心的类型,根据是否有序,又延伸出了两种具体的类型。
Collection
Colletion接口可以理解为是一个宽泛概念的存储数据元素的集合。它可能支持元素重复也可能不支持,它可能支持有序或者不支持,与它的具体实现相关。
- List接口是Collection的一个特化,它的元素会重复,但是有序。
- Set接口是Collection的另一个特化,它的元素特异,但是如果要规定有序,还要使用SortedSet
Map
Map接口是一个存储关键字-数值对的数据集合。如果需要有序,那么使用的SortedMap
框架的实现
下面一个表总结了接口的不同的实现。
注意:
- 所有的实现都不包含加锁的代码,也就是没有被synchronized标注的代码块,也就是说你可以选择添加或者不添加同步锁。
- 如果出现fail-fast事件,也就是在某个线程遍历某个集合的过程中,出现了另外一个线程中修改了当前的集合,那么会抛出ConcurrentModificationException异常,发现fail-fast事件。
- 所有的实现都是支持序列化(serializable)和克隆(clone)的。
- 所有的实现都支持null实例。
- 一个实现不一定包含接口中的全部函数的实现,如果出现了某个接口的定义但是对象实例不支持的方法,那么会返回UnsupportedOperationException异常。
框架的算法
框架的所有接口都支持一系列操作数据集合的函数。体现了多态