树结构使用lamda批量新增
时间: 2023-07-11 10:33:38 浏览: 76
可以使用Java 8的Stream API以及lambda表达式来实现树结构的批量新增。假设我们有以下的树结构:
```
class TreeNode {
private String name;
private List<TreeNode> children;
public TreeNode(String name, List<TreeNode> children) {
this.name = name;
this.children = children;
}
// 省略getter和setter方法
}
```
现在有一个名为`parentNode`的父节点,我们要为它批量新增若干个子节点,可以使用以下的代码:
```
List<String> childNames = Arrays.asList("child1", "child2", "child3");
List<TreeNode> children = childNames.stream()
.map(childName -> new TreeNode(childName, Collections.emptyList()))
.collect(Collectors.toList());
parentNode.setChildren(children);
```
代码解释:
1. 首先,我们使用`Arrays.asList`方法创建一个包含若干个孩子节点名称的列表`childNames`。
2. 然后,我们使用`childNames.stream()`方法将这个列表转换为一个`Stream<String>`对象。
3. 接着,我们使用`map`方法将每一个孩子节点名称转换为一个`TreeNode`对象,其中子节点列表为空。
4. 最后,我们使用`collect`方法将所有的`TreeNode`对象收集到一个列表中,然后将这个列表设置为父节点的子节点列表。
这样,我们就使用lambda表达式批量新增了树结构中的若干个子节点。
阅读全文