List<T> collect = list.stream().filter(tree -> Objects.isNull(tree.getPid())).peek( //设置子节点信息 tree -> tree.setChildren(getChildrenList(tree, list)) ).collect(Collectors.toList());
其中:
children属性为List<T>,pid为父节点的id。
在Java中,peek是一个Stream中间操作,它返回一个新的Stream,该Stream与原Stream的元素相同,但在调用peek方法时,会对元素进行某种操作,而不会改变元素的值或类型。peek方法通常用于调试或记录Stream中间操作过程中的元素。《特点:不影响元素本身的值》