Java 8 Multimap17 Mar 2025 | 5 分钟阅读 Java 提供了各种有用的内置集合库。但有时我们需要 Java 标准库中没有的特殊类型的集合。其中一种集合就是 Multimap。在本节中,我们将学习什么是 multimap,以及 如何在 Java 中实现 multimap,还有 Guava 库的 Multimap 接口。 Java Multimap在 Java 中,Map 是一种允许我们将键映射到值的 数据结构。另一方面,multimap 是 Guava 库中一种新的集合类型,它允许将单个键映射到多个值(类似于 DBMS 中的一对多关系)。但请注意,JDK 不支持 multimapping。 ![]() 在 Java 中实现 multimap 的替代解决方案是使用 Google 的 Guava 库和 Apache Commons Collections 库。两者都提供了 Multimap 接口的实现。它可以存储一个键的多个值。键和值都存储在集合中,并被视为 Map<K, List<V>> 或 Map<K, Set<V>>(标准 JDK 集合框架)的替代方案。 但是使用 Google Guava 库的 Multimap 对我们帮助不大。相反,我们将实现自己的 Multimap 类,该类也可以根据需要进行定制。在 Java 中编写 Multimap 类很容易。 以下 Java 程序展示了如何使用 Map 和 Collection 在 Java 中实现 Multimap 类。 Java Multimap 实现MultimapExample.java 输出 ----- Printing Multimap using keySet ----- a: [Andrew] b: [Albert, Tom] d: [Sam, Reo] g: [Jack, David] 使用 Google Guava 库Multimap<K, V> 接口定义在 Guava 库的 com.google.common.collect 包中。它实现了许多类,例如: ArrayListMultimap, ForwardingListMultimap, ForwardingMultimap, ForwardingSetMultimap, ForwardingSortedSetMultimap, HashMultimap, ImmutableListMultimap, ImmutableMultimap, ImmutableSetMultimap, LinkedHashMultimap, LinkedListMultimap, TreeMultimap。 语法 一个集合,它像 Map 一样将键映射到值,但每个键可能与多个值相关联。我们可以将 multimap 的内容可视化为从键到非空值集合的映射。例如:
或
Java Multimap 接口方法
下一主题Java 并行流 |
函数用于将庞大的代码分解成小的块,以便代码更容易理解,从而降低代码的复杂性。数组是同质数据结构,用于降低代码复杂性、提高效率和减少执行时间...
阅读 6 分钟
在数据库编程领域,处理大型文本数据是一项常见的要求。Java 作为使用最广泛的编程语言之一,提供了各种与数据库交互的机制。其中一种机制是 (Character Large Object),它专门用于管理...
5 分钟阅读
?Java Development Kit (JDK) 是创建基于 Java 的计算机程序的重要工具。它提供了开发人员构建 Java 程序和 Applet 所需的所有工具和资源。Java Development Kit (JDK) 结合了 Java 虚拟机 (JVM) 和 Java Runtime……
阅读 4 分钟
Java SE 7 引入了对错误处理方式的重大改进,带来了使 Java 应用程序中的错误管理更简单、更高效的功能。这些更改旨在提高代码的可读性,减少重复代码(样板代码),并增强开发人员的整体体验。异常的演变...
7 分钟阅读
简介:在 Java 中,了解为特定类创建了多少对象对于监控内存使用、跟踪资源使用和其他与性能相关的任务非常有用。问题陈述:问题是在 Java 中计算为特定类创建的对象数量...
阅读 3 分钟
Java 8 为编程语言带来了一些新功能,其中最重要的一项是 lambda 表达式。Lambda 表达式提供了一种简洁的方式来表达可以作为参数传递给另一个方法的函数,从而实现了函数式编程范式...
阅读 4 分钟
java.text 中的内置方法之一是 getMaximumIntegerDigits()。Java 的 DecimalFormat 类用于确定数字整数部分可以包含的最大位数。数字中出现在小数点 (.) 之前的部分称为...
阅读 2 分钟
给定一个整数数组(或数组列表)。我们的任务是打印给定整数数组的所有子集(不包括空子集)。请注意,显示子集的顺序无关紧要。示例 1:输入 int inputArr[] = {1, 2, 3} 输出:{1}、{2}、...
7 分钟阅读
Java 中的 ArrayList 数据结构允许程序员动态灵活地存储和管理可变数组中的组件。在本节中,我们将讨论在 Java 中替换 ArrayList 中元素的各种方法。开发人员将通过演示获得适应性强的解决方案……
5 分钟阅读
Java 模式程序可以增强编码技能、逻辑和循环概念。它通常在 Java 面试中被问到,以检查程序员的逻辑和思维。我们可以用不同的设计打印 Java 模式程序。要学习模式程序,我们必须具备……
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India