成为入门级的认证专业,最常被问到的面试问题之一是关于Java HashMap和Hashtable。因此,您必须完全准备好回答任何与HashMap或Hashtable相关的问题。Java利用HashMa
成为入门级的认证专业
,最常被问到的面试问题之一是关于Java HashMap和Hashtable。因此,您必须完全准备好回答任何与HashMap或Hashtable相关的问题。Java利用HashMap和Hashtable以键和值的形式存储数据。因此,本文将帮助您了解这两者之间的主要区别。
我将按以下顺序讨论这些主题:
什么是HashMap?什么是哈希表?HashMap vs Hashtable何时使用HashMap和Hashtable?“
“开始吧!”
“什么是HashMap?”HashMap是Java中一个基于映射的集合类,用于将数据存储在键和值对中。它有助于在Java中实现Map接口,它基本上是Java 1.2版以来的Java集合的一部分,并提供了Map接口在Java中的基本实现。要访问HashMap中的值,必须知道它的键。
之所以称为HashMap,是因为它使用了一种称为散列的技术。散列是通过将字符串的值保持为常量将大字符串转换为小字符串的过程。得到的压缩值有助于索引和更快的搜索。
什么是哈希表
“哈希表是用于存储键/值对的数据结构。在哈希表中,数据以数组格式存储,其中每个数据值都有自己的唯一索引值。如果知道所需数据的索引,就可以很快地访问数据。
Java哈希表类实现一个哈希表,它将键映射到值。它继承Dictionary类并实现映射接口。
哈希表声明
公共类哈希表扩展Dictionary实现映射,可克隆,可序列化的
K:由映射生成的键的类型。五: 这是映射值的类型。
既然你们已经了解了HashMap和Hashtable在Java中的工作原理,让我们看一看参数来理解HashMap和Hashtable之间的区别。
现在让我们指出HashMap和Hashtable之间的主要区别。
Java HashMap vs Hashtable参数HashMap Hashtable
Synchronization
Non synchronizated意思是它不是线程安全的,不能是在没有正确同步代码的情况下在多个线程之间共享。同步并可与多个线程共享
空键
只允许一个空键和多个空值不允许空键或其值
遗留系统
这是Java集合的一部分哈希表是一个遗留类不是初始Java集合的一部分
迭代器
迭代器是故障快速的如果任何其他线程试图修改映射,则抛出concurrentModificationException枚举器不会失败快速
继承类
继承抽象映射类继承字典类
现在,何时可以使用Java哈希映射和哈希表
“何时使用HashMap和Hashtable?”?同步是Java HashMap和Hashtable的主要区别。但是如果需要线程安全操作,那么可以使用Hashtable,因为它的所有方法都是同步的。但是,这是一个遗留类,必须避免。HashMap不可能做到这一点。对于多线程环境,可以使用与Hashtable几乎相似的ConcurrentHashMap。在这里,您甚至可以显式地使HashMap同步同步化同步化操作会导致性能低下,因此应该避免这种情况,直到并且除非它是必需的。因此,对于非线程环境,无疑会使用HashMap。”
“这使我们在本文的末尾了解了Java HashMap和Hashtable之间的区别。希望大家对这个话题都很清楚。
如果你发现这篇关于“Java HashMap vs Hashtable”的文章是相关的,请查看Edureka Java认证培训,这是一家值得信赖的在线学习公司,拥有超过250000名满意的学习者globe。
本课程旨在为您提供Java编程的入门知识,并为您提供核心和高级Java概念以及各种Java框架(如Hibernate和Spring)的培训。
如果您遇到任何问题,请随时在“Java HashMap vs Hashtable”的评论部分提出所有问题我们的团队很乐意回答