java使用stream递归查询树形数据
时间: 2023-02-28 10:04:04 浏览: 154
java树形结构递归查询
Java 中可以使用 Stream API 来递归查询树形数据。这可以通过在树节点上实现一个供流式处理的方法,并递归地调用该方法以获取下一级子节点,来实现。代码示例如下:
```
class TreeNode {
int val;
List<TreeNode> children;
Stream<TreeNode> stream() {
return Stream.concat(Stream.of(this), children.stream().flatMap(TreeNode::stream));
}
}
```
这段代码定义了一个 TreeNode 类,该类表示树中的一个节点。`stream()` 方法实现了流式处理,递归地查询所有子节点。使用该方法的示例如下:
```
TreeNode root = ...;
root.stream().forEach(node -> System.out.println(node.val));
```
这段代码将根节点的流式处理结果传递给了 `forEach` 方法,以便对每个节点执行操作,如打印节点的值。
阅读全文