Map实现类:TreeMap
说明:
-
TreeMap存储 Key-Value 对时,需要根据 key-value 对进行排序。TreeMap 可以保证所有的 Key-Value 对处于有序状态。
-
TreeSet底层使用红黑树结构存储数据
-
TreeMap 的 Key 的排序:
-
自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有 的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException
-
定制排序:创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对 TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口
-
-
TreeMap判断两个key相等的标准:两个key通过compareTo()方法或 者compare()方法返回0。
Map实现类:TreeMap
说明:
-
Hashtable是个古老的 Map 实现类,JDK1.0就提供了。不同于HashMap, Hashtable是线程安全的。
-
Hashtable实现原理和HashMap相同,功能相同。底层都使用哈希表结构,查询 速度快,很多情况下可以互用。
-
与HashMap不同,Hashtable 不允许使用 null 作为 key 和 value
-
与HashMap一样,Hashtable 也不能保证其中 Key-Value 对的顺序
-
Hashtable判断两个key相等、两个value相等的标准,与HashMap一致。
Map实现类:Properties
说明:
-
Properties 类是 Hashtable 的子类,该对象用于处理属性文件
-
由于属性文件里的 key、value 都是字符串类型,所以 Properties 里的 key 和 value 都是字符串类型
-
存取数据时,建议使用setProperty(String key,String value)方法和 getProperty(String key)方法