如何将字符串列表映射到空列表?

Yu *_*Wan 2 java java-stream

我有一组 String 并且想将它们中的每一个映射到一个空列表然后返回。我知道 for 循环可以解决它,但是有没有使用 Java Stream 的好方法?

例如:我有一组 {"a", "b", "c"}

我想返回一张地图Map<String, List<Object>>,就像{"a": emptyList(), "b": emptyList(), "c": emptyList()}

SDJ*_*SDJ 5

您可以Collectors.toMap为此目的使用。

Map<String, List<Object>> result = strings.stream()
    .collect(toMap(identity(), e -> new ArrayList<>()));
Run Code Online (Sandbox Code Playgroud)

其中identity()也是静态导入的)。

鉴于您的问题,您可能还对 感兴趣Map.computeIfAbsent,它允许您懒惰地进行初始化。

Map<String, List<Object>> result = new HashMap<>();
List<Object> listForA = result.computeIfAbsent("a", e -> new ArrayList<>());
// result = {a=[]}
Run Code Online (Sandbox Code Playgroud)