当前位置: 首页 > 知识库问答 >
问题:

使用给定列表中的键创建初始化的映射[重复]

林俊英
2023-03-14

我有一个列表列表 条目 我想创建一个hashmap >map 键是来自条目列表的键。

map = Stream.of(entries).collect(Collectors.toMap(x -> (String) x, new Deque<>()));

然而,我得到了铸造错误。这是固定的,我可以建立一个地图从列表的钥匙?

共有1个答案

曹理
2023-03-14

我想你需要这个:

Map<String, Deque<Instant>> map = entries.stream()
        .collect(Collectors.toMap(x -> x, x -> new ArrayDeque<>()));

您甚至可以将x->x替换为function.identity():

.collect(Collectors.toMap(Function.identity(), x -> new ArrayDeque<>()));
 类似资料:
  • 使用Java8 lambdas,在给定可能键的和的情况下,有效创建新的的“最佳”方法是什么?在这种情况下,您将得到一个包含可能的键的并希望生成一个其中是基于的某个方面构造的某种类型,即映射值类型。 我已经研究了几种方法,但认为一种方法比另一种方法更好(可能有一个例外--参见代码)。我将把“最佳”解释为代码清晰度和运行时效率的结合。这些是我想出来的。我肯定有人能做得更好,这是这个问题的一个方面。我不

  • 问题内容: 我打算初始化一个长度为n的列表列表。 但是,这以某种方式将列表链接在一起。 我希望有这样的东西: 有任何想法吗? 问题答案: 问题在于它们在内存中都是完全相同的列表。当使用语法时,得到的是n许多x对象的列表,但是它们都是对同一对象的引用。它们不是不同的实例,而是n对同一实例的引用。 要列出3个不同的列表,请执行以下操作: 这为你提供了3个单独的实例,这是你想要的 类似于 虽然类似于:

  • 我有多个数组映射。 我想从多个地图中获取重复地图键的列表。 例如 除了遍历所有地图键,检查集合是否包含键,如果不将键添加到集合中,我想不出任何更干净的方法。有没有办法通过streams来实现这一点?

  • 我注意到,当我创建任何特定类型对象的数组列表时,我需要像这样初始化它: 我对此进行了研究,我唯一发现的是包括第二个对象的初始化。我想知道这种结构的‘为什么’。 我知道(现在)这个问题有一个明确的答案(我发现Java7中菱形运算符的意义是什么?在这里),但我离开了这个问题,因为如果不知道术语“菱形运算符”,研究非常困难。