主要差异
HashMap和hashtable是Java中两个关键的数据结构。它们在集合框架中,两者之间几乎没有共同之处。虽然它们有这些相似之处,但它们之间也有一些不同之处。HashMap和hashtables都以键值对的形式存储数据,slao都实现Map接口。为了存储元素,HashMap和HashTable都使用哈希技术。因为我们必须解决两者之间的差异,所以最重要的区别是基于线程安全性。HashMap和HashTable的主要区别包括空键、迭代值、同步。表现和等级。HashTable是线程安全的,而HashMap则不是线程安全的。HashTable在内部同步,而HashMap在内部不同步,因此在多线程应用程序中使用HashMap是不安全的。HashMap的性能比HashTable好,因为HashTable是内部同步的。HashMap优于HashTable,因为HashTable是一个遗留类,被认为是由于折旧。HashMap比HashTable快。从jdk1.2引入HashMap开始,它就是Java集合框架的成员,但在jdk1.2哈希表出现之前,jdk1.2已经使它实现了Map接口并成为集合框架的成员。
比较图
hashmap的定义
HashMap是Java中集合框架中重要的数据结构。HashMap不是线程安全的,因此在多线程应用程序中使用HashMap是不安全的。但是对于多线程应用程序来说,它可以通过外部同步来保证安全集合.已同步()方法。它通过扩展AbstractMap类来实现Map接口。HashMap最多允许一个空键,并且允许任意数量的空值。HasMap返回的迭代器本质上是失败的。HashMap的性能很好,因此与HashTable相比速度更快。
哈希表的定义
HashTable是Java中集合框架中重要的数据结构。哈希表是线程安全的,并且在内部同步。因此,它可以安全地用于多线程应用程序。它通过扩展Dictionary类来实现Map接口。它既不允许单个空键也不允许空值。HashTable是一个遗留类,被认为是由于折旧。哈希表返回的枚举本质上是安全的。
一言以蔽之
- HashTable是线程安全的,而HashMap则不是线程安全的。
- 哈希表在内部同步,而HashMap在内部不同步。
- HashMap和HashTable都实现了Map接口,但它们都扩展了不同的类。HashMap通过扩展AbstractMap类来实现Map接口,而HashTable则通过扩展Dictionary类来实现Map接口。
- HashMap允许最多一个空键,并且允许任意数量的空值,而HashTable既不允许单个空键也不允许空值。
- 对于遍历元素,HashMap只返回迭代器,而HashTable返回的不仅是迭代器,还是枚举器。
- HasMap返回的迭代器本质上是快速失败的,而哈希表返回的枚举本质上是故障安全的。
- HashMap比HashTable快。
- HashTable比HashMap慢。
- HashMap的性能比HashTable好,因为HashTable是内部同步的。
- HashMap优先于HashTable,因为HashTable是一个遗留类,被认为应该折旧。
- 从jdk1.2引入HashMap开始,它就是Java集合框架的成员,但在jdk1.2哈希表出现之前,jdk1.2已经使它实现了Map接口并成为集合框架的成员。
对比视频
结论
计算机体系结构是一个神秘的东西,对于一般用户和没有详细知识的人。HashMap和HashTable这两个术语是相似的,它们被认为是相同的,但在工作和功能上是不同的。因此,本文将对这两种类型作一个正确的认识,以便人们有一个更清晰的认识。