Java 中的 IdentityHashMap 类2025年5月8日 | 阅读 8 分钟 IdentityHashMap 类与 HashMap 类类似。它实现了 AbstractMap 类。然而,它在比较键(或值)时使用引用相等性,而不是对象相等性。 它不是 Map 的通用实现。虽然此类实现了 Map 接口,但它有意违反了 Map 的通用约定,该约定要求在比较对象时使用 equals() 方法。 它专门设计用于需要引用相等性语义的罕见情况。当用户需要使用引用来比较对象时,它被使用。 我们需要导入 java.util 包才能使用 IdentityHashMap 类。 IdentityHashMap 的特点
语法 其中,K 是 Object 类型的键,V 是 Object 类型的值。 IdentityHashMap 的构造函数有两种方法可以创建 IdentityHashMap 实例 或 1. IdentityHashMap() 它创建一个新的空身份哈希映射,默认的预期最大大小为 21。 语法 2. IdentityHashMap(int ExpectedMaxSize) 它创建一个新的空身份哈希映射,具有给定的指定预期最大大小。 语法 3. IdentityHashMap(Map m) 它创建一个新的身份哈希映射,其中包含指定映射中的键值对。 语法 IdentityHashMap 类的所有方法除了从其父类继承的方法外,IdentityHashMap 还定义了以下方法
让我们使用 IdentityHashMap 类的所有方法。 IdentityHashMapDemo.java 输出 ![]() IdentityHashMap 上的基本操作1. 添加元素要将元素添加到 IdentityHashMap 中,我们需要使用 put() 和 putAll() 方法。put() 方法将指定的键和值映射到映射中。当传入当前键时,旧值将被新值替换。putAll() 方法将一个映射中的所有键值映射复制到另一个映射。 示例 让我们考虑以下示例,其中我们在 Java 程序中实现 put() 和 putAll() 方法。 IdentityHashMapExample1.java 输出 ![]() 2. 删除元素要从映射中删除映射(键值对),我们使用 remove() 方法。 让我们考虑以下示例,其中我们在 Java 程序中使用 remove() 方法删除一个映射。 IdentityHashMapExample2.java 输出 ![]() 3. 访问元素要访问 IdentityHashMap 的元素,我们使用 get() 方法。 让我们考虑以下示例,其中我们使用 get() 方法从映射中访问映射。 IdentityHashMapExample3.java 输出 ![]() 4. 遍历 IdentityHashMap要遍历 Collection Framework 的所有结构,我们使用 Iterator 接口。由于迭代器仅处理单一类型的数据,我们使用 Entry IdentityHashMapExample4.java 输出 ![]() IdentityHashMap 和 HashMap 之间的区别
以下示例解释了 IdentityHashMap 和 HashMap 类之间的区别。 IdentityHashMapVSHashMap.java 输出 ![]() 同步的 IdentityHashMap当多个线程并发访问身份哈希映射,并且至少一个线程对映射进行了结构性修改时,有必要在外部同步该映射。(映射的结构性修改是指添加或删除一个或多个键值映射。如果仅更改实例中已包含的键关联的值,则不是结构性修改。) 这可以通过同步任何封装该映射的对象来实现。如果不存在这样的对象,则应使用 Collections.synchronizedMap() 方法将映射 **包装** 起来。执行此操作的正确时间是在创建时,以防止对映射进行不同步访问。 语法 其中 K 是映射中键的类型,V 是与之映射的值的类型。 |
文本转语音 (TTS) 或大声朗读是一种辅助技术(它是指针对残疾人的辅助、适应性和康复设备),可以朗读数字文本。文本转语音 (TTS) 转换是 ATM、在线翻译器、文本扫描仪等智能设备的高级功能……
阅读 6 分钟
确定字符串数组是否可以连接起来形成一个圆。如果字符串 X 的最后一个字符和字符串 Y 的第一个字符相同,那么字符串 X 可以放在字符串 Y 之前形成一个圆。示例 1:输入:字符串 a =...
7 分钟阅读
Java 未打开是一个可能由于某些原因出现的错误或故障排除。但我们可以记住一些要点,这样在安装 Java 和打开它时,我们可能不会遇到这些问题。在本节中,我们将...
阅读 4 分钟
在 Java 中,使用预定义方法可以非常轻松地找到数字的平方根。Java Math 类提供了 sqrt() 方法来查找数字的平方根。在本节中,我们将创建一个 Java 程序来查找...
阅读 3 分钟
在 Java 中,按位运算符用于执行二进制数字的位级操作。这些运算符通过执行位移、AND、OR、NOT 和 XOR 等操作来更改数字中的位。我们将通过示例和程序来介绍各种按位运算符...
5 分钟阅读
Java 是一种灵活且流行的编程语言,开发人员可以在其中编写、调试和优化代码,而无需担心任何特定的硬件或其他技术。在本节中,我们将讨论 Java 命令和工具,探讨它们的特性以及它们如何帮助...
5 分钟阅读
大数据是海量数据的集合,随着时间的推移呈指数级增长。传统数据库管理工具无法处理大数据。因此,大量数据使用大数据工具进行管理和处理。有几种大数据工具可供选择...
阅读 8 分钟
Java 的位操作使我们能够在一个字节中存储两个数字,同时简化代码。改变二进制数据表示中单个比特的技术称为位操作。在这种情况下,位操作可用于将两个数字压缩到一个...
阅读 4 分钟
在 Java 中,我们可以创建一个 ATM 程序来表示 ATM 交易。在 ATM 程序中,用户必须从屏幕上显示的选项中选择一个选项。选项与取款、存款、查询余额和退出相关。为了...
阅读 3 分钟
ORE 数字是一个特殊的正数,也被称为调和除数数。如果一个数的约数具有整数的调和值,则该数称为 ORE。与质数和阿姆斯特朗数不同,ORE 数字很少被...询问。
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India