HashMap, LinkedHashMap, TreeMap, Hashtable都属于Map接口下的实现类。
注意 Map接口不属于Collection接口 他们两个是并列关系。 set,list 属于Collection接口的子接口。
map接口下的实现类适用于存放key-value键值对数据的,他的key部分是有相应的set来实现的 所以map存储是无序的,不能存放重复的数据。
value可以重复的,使用Collection来存放的。一个key-value对构成一个entry(Map.Entry),entry使用Set来存放。
HashMap, LinkedHashMap: 的key部分 由于使用hashset与linkedhashset存储的所以可以存null 但是只能存一个。
Treemap 由于Key部分基于Treeset,而且要进行排序 所以不能为null;
Hashtable 是线程安全的,不可以添加null键,null值不建议使用。其他的三个实现类value部分可以存null,并可以存多个。
TreeMap:需要按照key所在类的指定属性进行排序。要求key是同一个类的对象。对key考虑使用自然排序 或 定制排序