数据结构:Map 与 Set 结构详解
一、接口的实现
接口是在实现类子类里完整实现的。
1. 方法上
接口处在被使用范围下时,在意义编译的要求下,一定要被连接有此接口的实现类赋值向上转型,使得里面的抽象方法都被重写。因为这些抽象方法都无方法体,每个抽象方法设置有点意义的也就只有形参类型、返回值类型,无完整意义的,所以抽象方法的完整实现是在实现类子类里完成的。
2. 成员上
接口里一般不会定义成员变量,更多时候成员变量都是在实现类子类这边结合临摹要实现的抽象方法,在可创建的各样对象中根据具体需求选择针对性地自定义实现的,从而达到接口实现的多样化。所以接口设置成在实现类里面创建成员变量是接口能多样化实现的保障。
二、Map 的内外双接口结构
public interface Map<K, V> {
// 外部 Map 整体接口
// Map 接口临摹 从外部、握整体操作包装节点
V put(K key, V value);
V get(Object key);
V remove(Object key);
void putAll(Map<? extends K, ? extends V> m);
void clear();
interface Entry<K, V> {
// 内部 Entry 局部接口
// Entry 接口临摹 每个包装节点对象自己对自身的操作
K getKey();
V getValue();
V setValue(V value);
}
}
1. 实现
1.1 外部 Map 接口的实现
1.1.1 临摹整体
外部 Map 整体接口的抽象方法临摹着从外部、握整体地能操作着所有键值成对包装单位体。
1.1.2 外部类实现整体
对应到具体实现类那边,外部 Map 整体接口的实现类果真就额外有操作所有包装单位整体的入口成员变量,再配着重写着的操作整体的实现方法。外部 Map 整体接口的实现类(即实现类整体中不包含内部 Entry 实现类的外部 Map 实现类部分)实现了对包装单位从整体的操作。
1.2 内部 Entry 接口的实现
1.2.1 临摹内部
内部 Entry 局部接口的抽象方法临摹着从内部包装单位体自身对自己范围内的内部操作。


