我有一组 String 并且想将它们中的每一个映射到一个空列表然后返回。我知道 for 循环可以解决它,但是有没有使用 Java Stream 的好方法?
例如:我有一组 {"a", "b", "c"}
我想返回一张地图Map<String, List<Object>>,就像{"a": emptyList(), "b": emptyList(), "c": emptyList()}
您可以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)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |