Java 中的不可变 Map10 Sept 2024 | 4 分钟阅读 顾名思义,不可变 Map 类型被称为不可变 Map。它表示 Map 的内容在声明后是只读的,并且此后是固定或不变的。任何尝试修改、添加或删除 Map 中元素的行为都会抛出 UnsupportedOperationException。不可变 Map 也不允许 null 元素。如果尝试创建一个带有 null 元素的不可变 Map,则会触发 NullPointerException。在尝试将 null 条目包含在 Map 中时,会引发 UnsupportedOperationException。 注意:由于它是一个不可变集合,而不是由不可变对象组成的集合,因此可以对其内容进行任何更改。类声明类层次结构为了创建不可变 Map,有几种生成方法。它们包括:
方法:使用 Guava 的 copyOf() 函数从现有 Map 创建看起来您想使用 Guava 的 copyOf() 函数来复制一个已有的 Map。Guava 是一个 Java 库,它提供了许多用于处理集合和其他常见编程任务的实用类。 实施文件名: MappingExample1.java 输出 {1=Welcome, 2=to, 3=the, 4=World} 方法:使用 Collections.singletonMap()Collections.singletonMap() 方法返回一个只包含一个映射的不可变 Map。它可用于创建一个键值对来构建一个 Map。 实施文件名: MappingExample2.java 输出 {John Roll No:=104} 方法:使用 ImmutableMap 的 Builder()Builder() 函数由 ImmutableMap 类在 Guava 中提供。此函数允许您从现有 Map 生成 ImmutableMap,创建新的 ImmutableMap,或两者兼可。 使用 ImmutableMap 的 Builder() Builder() 函数由 ImmutableMap 类在 Guava 中提供。此函数允许您从现有 Map 生成 ImmutableMap,创建新的 ImmutableMap,或两者兼可。 实施文件名: MappingExample4.java 输出 {1=Welcome, 2=to, 3=the, 4=World} 方法:使用 Guava 的 of() 函数新建 ImmutableMap可以使用 Guava 的 of() 函数创建不可变 Map。您可以向此方法提供一组键值对来初始化 Map。ImmutableMap.of() 已重载以处理不同数量的元素(最多 5 个)。如果您需要创建一个包含超过五个元素的 Map,您可以使用 ImmutableMap.builder() 来创建 Map。 实施文件名: MappingExample5.java 输出 {1=Welcome, 2=to, 3=the, 4=World} 方法:从现有 Map 创建 ImmutableMap在 Guava 中,我们可以使用 copyOf() 函数将现有 Map 转换为不可变 Map。在这里,我们首先创建一个 existingMap,一个包含两个键值对的普通 HashMap。然后,我们使用 ImmutableMap.copyOf(previousMap) 创建该 Map 的不可变副本。此处使用的是 ImmutableMap。 由于 ImmutableMap.copyOf() 会创建原始 Map 的副本,因此在 ImmutableMap 形成后对原始 Map 所做的修改不会影响不可变版本。 实施文件名: MappingExample6.java 输出 {1=Welcome, 2=to, 3=the, 4=World} 不可变 Map 的优点
不可变 Map 的缺点
下一个主题Java 中的 K-4 City 程序 |
在并发编程领域,线程安全在确保软件应用程序的稳定性和正确性方面起着至关重要的作用。Java 作为开发并发应用程序的流行语言,提供了各种实现线程安全的机制。在本节中,我们将探讨概念…
阅读 6 分钟
给定一个包含非负数的数组,我们的任务是找出表示给定数组中两个数字的最小 XOR 值的那个值。考虑以下示例。示例 1:输入:int a[] = {10, 8, 5, 3, 1};输出:2 解释:在给定的数组中,我们...
7 分钟阅读
Java 8 为接口引入了多项重要功能和增强功能,使其功能更加强大和灵活。这些新功能扩展了接口的功能,并在 Java 语言的演进中发挥了至关重要的作用。以下是 Java 中引入的一些关键功能...
阅读 3 分钟
树是基本的数据结构,在计算机科学的各种应用中起着重要作用。在树种,普通树是一种通用且灵活的系统,可用于在各种上下文中表示层次关系。在本节中,...
5 分钟阅读
名为 Java.util.concurrent.atomic.AtomicIntegerArray.set() 的内置 Java 函数允许您在 AtomicIntegerArray 的任何位置设置值。此函数通过提供 AtomicIntegerArray 的索引值作为参数来修改指定索引处的值。上述方法不返回值....
阅读 3 分钟
在 Java 中处理双精度浮点数等浮点数是很常见的。虽然在 Java 中比较整数有时会因为它们固有的错误而变得有点困难。与比较双精度值相比,Java 中比较整数很简单,需要仔细考虑和计算...
阅读 6 分钟
本机方法是在 Java 中声明的一种方法,其实际代码在 Java 环境之外运行,通常用 C、C++ 或汇编语言编写。我们使用 native 关键字标记一个方法,并且不在 Java 类中提供其主体。相反,...
阅读 6 分钟
关联数组将元素存储为 (键, 值) 对。它是一个唯一键的集合,每个键都与一个特定的值相关联。它也称为映射,是一种抽象数据类型,其中每个键在集合中最多出现一次。在 Java 中,...
阅读 3 分钟
给定两个数字 N 和 K,我们的任务是确定最小的 X 值,使得 N < X*K。示例 1:输入:int num = 8 int K = 7 输出:N 的最大因子是 2。解释:对于给定的数字,小于 K 且可被 N 整除的数字是 1、2、...
5 分钟阅读
标题竞赛为参与者提供了一种有趣且富有创意的途径,让他们为图像构思巧妙的标题。在本文中,我们将探讨如何为Exeter标题竞赛创建一个Java程序。我们将开发一个简单的命令行应用程序,允许用户提交他们的...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India