list1.add(testEntity); list1.add(testEntity1); list1.add(testEntity2); list1.add(testEntity3); //要点 Map<String,List<TestEntity>> parentMap=list1.stream().collect(Collectors.groupingBy(TestEntity::getParentCode)); list1.forEach(item-> {item.setChildren(parentMap.get(item.getCode())...
publicstaticTreeNodebuildTree(List<TreeNode>nodes){Map<String,TreeNode>nodeMap=nodes.stream().collect(Collectors.toMap(node->node.id,Function.identity()));TreeNoderoot=null;for(TreeNodenode:nodes){if(node.parentId==null){root=node;}else{TreeNodeparent=nodeMap.get(node.parentId);if(parent!=...
setChildren(streamToTree(treeList,child.getId())).collect(Collectors.toList()); } 四、测试 代码语言:javascript 代码运行次数:0 运行 AI代码解释 public static void main(String[] args) { NodeVO NodeVO1 = new NodeVO(1,"广东省",0); NodeVO NodeVO2 = new NodeVO(2,"广州市",1); NodeVO...
private List<NodeVO> children; public NodeVO(String id, String name, String pid) { this.id = id; this.name = name; this.pid = pid; } } 三、list转树形方法 public static List<NodeVO> streamToTree(List<NodeVO> treeList, String parentId) { List<NodeVO> list = treeList.stream() /...
三、list转树形方法 public static List<NodeVO> streamToTree(List<NodeVO> treeList, String parentId) { List<NodeVO> list = treeList.stream() // 过滤父节点 .filter(parent -> parent.getPid().equals(parentId)) // 把父节点children递归赋值成为子节点 .map(child -> { child.setChildren(stream...
* stream + 递归 的方式 构造树形结构 * * @param nodes 源数据列表 * @return 树形结构列表 */ public static List<Node> listToTree1(List<Node> nodes) { return nodes.stream() // 获取一级树形结构 .filter(item -> item.getParentId().equals(0)) ...
然后,编写一个工具类来将List转换为树形结构: java import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; public class ListToTreeUtil { public static <T> List<T> listToTree(List<T> list, Function<T, String> getId, Function&...
package list; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class ListToTreeTest { public static void main(String[] args) { List<TestEntity> ...
);List<INodeDTO>sources=entities.stream().map(Factory.NODE_DTO_BUILDER::apply).collect(Collectors.toList());returnINodeDTO.MULTI_TREE_CONVERTER.apply(sources); } } 复制代码 提供一个main方法进行测试。 public static void main(String[]args) throws JsonProcessingException { ...
list.forEach(item->{//设置子节点setChilds.accept(item,parentMap.get(getId.apply(item))); });//过滤出根节点集合,根节点已经包含了孩子节点returnlist.stream().filter(isTop).collect(Collectors.toList()); } 执行结果: