当前位置: 首页 > 面试题库 >

为同一键提供多个值的Java集合

施赞
2023-03-14
问题内容

什么类型的Java集合可为同一键返回多个值?

例如,我想为键300返回301,302,303。


问题答案:

您可以使用a List作为您的值Map

List<Integer> list = new ArrayList<Integer>();
list.add(301);
list.add(302);
list.add(303);

Map<Integer, List<Integer>> map = new HashMap<Integer, List<Integer>>();
map.put(300, list);

map.get(300); // [301,302,303]

另外,您可以Multimap按照biziclop的建议从Guava
中使用它,它的语法更加简洁,并且还有许多其他非常有用的实用程序方法:

Multimap<Integer, Integer> map = HashMultimap.create();
map.put(300, 301);
map.put(300, 302);
map.put(300, 303);

Collection<Integer> list = map.get(300); // [301, 302, 303]


 类似资料:
  • 问题内容: 我想要两个相同模型的外键: 我收到如下错误: 字段“ example1”的访问器与相关字段“ Example.test_set”冲突。在“ example1”的定义中添加一个related_name参数。 问题答案: 尝试使用:

  • 问题内容: 我们是否可以用一个键和两个值实现HashMap。就像HashMap一样? 还请告诉我(如果没有办法)通过其他任何方法来实现三个值的存储(以一个为键)的方法,对我有帮助吗? 问题答案: 你可以: 使用具有列表作为值的地图。 创建一个新的包装器类,并将该包装器的实例放置在地图中。。 使用类似类的元组(节省创建许多包装器)。。 并排使用多个地图。 例子 1.使用列表作为值进行映射 这种方法的

  • 问题内容: 我需要能够使用读取同一键的多个值。配置文件示例: 使用“标准”将有一个带有值的键。但是我需要解析器读取两个值。 在重复键输入之后,我创建了以下示例代码: 第一部分(带有)读入我们的“常规”配置文件,仅保留其值(覆盖/删除其他值),然后得到以下预期输出: 第二部分()使用我的方法将多个值附加到列表中,但输出是 如何摆脱重复的价值观?我期望的输出如下: 要么 (我不在乎是否每个值都在列表中

  • 问题内容: 我需要一个可以根据键查找值的集合,反之亦然。每个值都有一个键,每个键都有一个值。有没有可以立即使用的数据结构呢? 问题答案: 该BIMAP从谷歌番石榴看起来会适合你。 双向映射(或“双向映射”)是一种保留其值以及其键的唯一性的映射。此约束使bimap可以支持“反向视图”,这是另一个bimap,它包含与此bimap相同的条目,但具有相反的键和值。 或来自Apache Commons Co

  • 可能有一个非常明显的答案,但如何做到以下几点: 基本上是从一个类型中检索所有键,以循环通过?

  • 嗨,我们正在使用spring sleuth进行跟踪。要创建新的span,我们使用注释@NewSpan;要向新span添加标记,我们使用@SpanTag。我们所面临的问题是,若我们将一个映射作为输入传递给我们想要为该映射中的每个键创建标记的方法,那个么这个映射就是一个问题。但是@SpanTag创建一个键,并将指定的映射作为其值。 有没有办法使用注释来实现这一点 @NewSpan public voi