我正在尝试学习java 8流,但我将以下代码转换为流
parents = new ArrayList<Integer>() ...
children = new ArrayList<Intger>() ...
Map<Integer, List<Integer>> result = new HashMap<Integer, List<Integer>>();
for (Integer parentId : parents) {
result.put(parentId, new ArrayList<Integer>(children));
}
return result;
像这样的东西不起作用
return parents.stream()
.collect(toMap(p -> p, children));
Tunaki提供了导致答案的链接:How to create a map with Java stream API using a value outside the stream?
答案:
return parents.stream()
.collect(toMap(Function.identity(), e -> new ArrayList<>(children)));
问题是我需要将一个元素传递给value函数,即使我不使用它而是从外部捕获。我试图给它一个不接受任何东西的功能。
答案 0 :(得分:0)
Tunaki提供了导致答案的链接:How to create a map with Java stream API using a value outside the stream?
答案:
return parents.stream()
.collect(toMap(Function.identity(), e -> new ArrayList<>(children)));
问题是我需要将一个元素传递给value函数,即使我不使用它而是从外部捕获。我试图给它一个不接受任何东西的功能。