【发布时间】:2020-01-05 13:11:47
【问题描述】:
我有一个字符串数组列表:
ArrayList<String> list = Arrays.asList("A", "B", "C", "D");
我想初始化一个映射HashMap<String, List<Integer>>,我的列表元素是键,一个空的整数列表是值。
当然有一种使用循环的方法,但我想知道是否有一种方法可以在一行中完成。在看到a similar question 中的问题和答案后,我知道这是可行的:
HashMap<String, List<Integer>> bigMap = ImmutableMap.<String, List<Integer>>builder()
.put("A", new ArrayList<Integer>)
.put("B", new ArrayList<Integer>)
.put("C", new ArrayList<Integer>)
.put("D", new ArrayList<Integer>)
.build();
但这仅适用于列表大小较小的场景。我如何使用流来做到这一点,就像another question中提到的方式一样?
【问题讨论】:
-
您是否阅读了链接问题中的this answer?你能解释一下你上面的问题是什么吗?
-
@Naman 是的,但是这个答案给出了一个例子,它映射到值,而不是键,它使用函数
getKey作为键,这与我所拥有的不同。 -
您提出的问题是使用流,链接的答案分享了这样做的方法。在您的情况下,映射中的常量值作为值起作用,
e -> Collections.emptyList()。至少试一试吧。
标签: java list arraylist java-8 hashmap