publicclassMain{publicstaticvoidmain(String[]args){TreeNoderoot=newTreeNode(1);TreeNodechild1=newTreeNode(2);TreeNodechild2=newTreeNode(3);root.addChild(child1);root.addChild(child2);TreeNodegrandChild=newTreeNode(4);child1.addChild(grandChild);// 进行树转列表List<String>list=TreeConverter....
java import java.util.ArrayList; import java.util.List; // 定义二叉树节点类 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; left = null; right = null; } } public class TreeToList { // 将二叉树转换为列表(前序遍历) public static List...
Map<Long, TreeNode> map =newHashMap<Long, TreeNode>();// 将所有的数据,以键值对的形式装入map中for(TreeNode node : list) {// 去除冗余的子节点node.setChildren(newArrayList<TreeNode>()); map.put(node.getId(), node); }for(TreeNode node : list) {// 如果id是父级的话就放入tree中if(...
convert方法接收一个树形结构的节点列表作为参数,并返回转换后的一层list数据结构。 convertRecursive方法是递归方法,用于将节点及其子节点添加到list中,并记录层级。 findChildren方法根据父节点id查找子节点。 三、使用示例 假设我们有以下树形结构: List<Node>tree=newArrayList<>();tree.add(newNode(1,0));tree.a...
.getfieldValue(clazz,t,Children);if(!CollectionUtils.isEmpty(childTree)){List<T>childList=toList(clazz,childTree);if(!CollectionUtils.isEmpty(childList)){datalist.addAll(childList);}}// ClassReflectUtils.setValue(clazz, t, Children, new ArrayList<clazz>());datalist.add(t);}returndatalist...
Tree tree= (Tree)JSONObject.toBean(json, Tree.class); 2、Tree格式(多数据)转成对象 HashMap mapClass=newHashMap(); mapClass.put("children", Tree.class);//children属性是一个list集合Tree tree = (Tree)JSONObject.toBean(json, Tree.class,mapClass);//Tree是对应的实体对象 ...
很多时候为满足前后端交互的数据结构需求,往往我们需要把平铺的List数据与Tree型层级数据结构进行互转,这篇文章提供详实的递归和非递归的方式去实现数据结构转换,为了使用到lambda的特性,Java version >=8。 需求 我们从基础设施层获取了一个列表数据,列表其中的对象结构如下,注意约束条件如果没有pid,默认为null。
msgList,找出它所有的子集for(MessageEntitymsgEntity:msgList){// 把集合转换成树结构List<MessageEntity>treeList=messageListToTree(msgEntity,allList);messageList.addAll(treeList);}}}// return treeToList(messageList);returnmessageList;}privateList<MessageEntity>treeToList(List<MessageEntity>messageList...
ToTree(list, treeNodeDTO.getId())) .collect(Collectors.toList()); } /** * 树节点对象 */ @Data public static class TreeNodeDTO { /** * ID */ private Long id; /** * 父级ID */ private Long parentId; /** * 子节点列表*/ private List<? extends TreeNodeDTO> childrenList; } ...
步骤1: 创建树节点类 (TreeNode) 首先,我们需要定义树节点类。每个树节点将包含一个值及其子节点的列表。这是 Java 中的基本树节点定义。 importjava.util.ArrayList;importjava.util.List;// 树节点类classTreeNode{intvalue;// 节点的值List<TreeNode>children;// 子节点列表// 构造函数publicTreeNode(intval...