java源码 -- AbstractMap
AbstractMap抽象类实现了一些简单且通用的方法,本身并不难。但在这个抽象类中有两个方法非常值得关注,keySet和values方法源码的实现可以值的学习。 抽象类通常作为一种骨架实现,为各自子类实现公共的方法。上一篇我们讲解了Map接口,此篇对AbstractMap抽象类进行剖析研究。 Java中Map类型的数据结构有相当多,AbstractMap作为它们的骨架实现实现了Map接口部分方法,也就是说为它的子类各种Map提供了公共的方法,没有实现的方法各种Map可能有所不同。 抽象类不能通过new关键字直接创建抽象类的实例,但它可以有构造方法。AbstractMap提供了一个protected修饰的无参构造方法,意味着只有它的子类才能访问(当然它本身就是一个抽象类,其他类也不能直接对其实例化),也就是说只有它的子类才能调用这个无参的构造方法。 在Map接口中其内部定义了一个 Entry接口 ,这个接口是Map映射的内部实现 用于维护一个key-value键值对 ,key-value存储在这个 Map.Entry 中。AbstractMap对这个 内部接口进行了实现 ,一共有 两个 :一个是可变的 SimpleEntry 和一个是不可变的 SimpleImmutableEntry 。 (A) SimpleEntry public static class