您的位置:首页 > 其它

HashMap & Hashtable区别

2016-06-04 18:02 405 查看
•HashMap 和 Hashtable 是 Map 接口的两个典型实现类
•区别:
     –Hashtable 是一个古老的 Map 实现类,不建议使用
     –Hashtable 是一个线程安全的 Map 实现,但 HashMap 是线程不安全的。
     –Hashtable 不允许使用 null 作为 key 和 value,而 HashMap 可以
•与 HashSet 集合不能保证元素的顺序的顺序一样,Hashtable 、HashMap 也不能保证其中 key-value 对的顺序
•Hashtable 、HashMap 判断两个 Key 相等的标准是:两个Key 通过 equals 方法返回 true,hashCode 值也相等。
•Hashtable 、HashMap 判断两个 Value相等的标准是:两个Value 通过 equals 方法返回 true

                                                         相关介绍

LinkedHashMap

•LinkedHashMap 是 HashMap 的子类
•LinkedHashMap 可以维护 Map 的迭代顺序:迭代顺序与 Key-Value 对的插入顺序一致

Properties

•Properties 类是 Hashtable 的子类,该对象用于处理属性文件
•由于属性文件里的 key、value 都是字符串类型,所以properties 里的 Key 和 Value 都是字符串类型的

TreeMap

•TreeMap 存储 Key-Value 对时,需要根据 Key 对 key-value 对进行排序。TreeMap 可以保证所有的 Key-Value 对处于有序状态。
•TreeMap 的 Key 的排序:
–自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有的 Key 应该是同一个类的对象,否则将会抛出ClasssCastException
–定制排序:创建 TreeMap 时,传入一个 Comparator对象,该对象负责对 TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hashmap hashtable class list