Map源码阅读
An object that maps keys to values. A map cannot contain duplicate keys;each key can map to at most one value.
将键映射到值的对象,一个map不能包含重复的键;每个键最多可以映射到一个值。这个接口取代了Dictionary类,Dictionary类是一个完全抽象的类,而不是接口。Map接口提供了三个集合视图,允许将映射的内容视为一组键、值的集合或一组键值映射。映射的顺序定义为映射集合视图上的迭代器返回其元素的顺序。一些map实现,比如TreeMap类,对它们的顺序做出了特定的保证;而其他类,如HashMap类,则没有。注意:如果使用可变对象作为映射键,则必须非常小心。如果对象的值以影响等号比较的方式更改,而对象是映射中的键,则不指定映射的行为。这一禁令的一个特殊情况是,不允许map将自己包含为键。虽然允许映射将自己包含为一个值,但是建议非常谨慎:equals和hashCode方法不再在这样的映射上定义得很好。所有通用映射实现类都应该提供两个“标准”构造函数:一个void(无参数)构造函数,它创建一个空映射;一个构造函数,它只有一个map类型的参数,它创建一个新的映射,其键值映射与其参数相同。实际上,后一个构造函数允许用户复制任何映射,生成所需类的等效映射。没有办法强制执行这个建议(因为接口不能包含构造函数),但是JDK中的所有通用映射实现都符合此标准。
What do you want to be?