实践Tree to List 上面讲到了平铺列表(List)转树形(Tree)结构,一般来说对于足够后端数据转成前端想要的结构了。但都支持了正向转换,那么反向转换,即树形(Tree)结构如何转平铺列表(List)呢? 递归实现 递归实现,分为两个函数,List<INodeDTO> flatten(List<INodeDTO> flatList)接受外部调用,传入待转换的Tree形结构。...
很多时候为满足前后端交互的数据结构需求,往往我们需要把平铺的 List 数据与 Tree 型层级数据结构进行互转,这篇文章提供详实的递归和非递归的方式去实现数据结构转换,为了使用到 lambda 的特性, Java version >=8 。 需求 我们从基础设施层获取了一个列表数据,列表其中的对象结构如下,注意约束条件如果没有pid,默认...
返回Key为顶级菜单id的列表(这里顶级菜单Id为-1) 实现代码 public List<AppMenuTree> listToTreeByMap() { // 获取菜单列表 List<AppMenuTree> menuList = Convert.toList(AppMenuTree.class, getMenuList()); // 根据父菜单id进行分类 Map<Integer, List<AppMenuTree>> parentMap = menuList.stream() ....
zoneList.forEach(zone-> zone.children =zoneByParentIdMap.get(zone.id));returnzoneList.stream().filter(v -> v.parentId.equals("0")).collect(Collectors.toList()); } } 测试类 packagecom.springbootemaildemo.tree.zone;importcom.alibaba.fastjson.JSON;importjava.util.ArrayList;importjava.util....
* 对象List转为Tree树形结构 * @param entityList 传进来的泛型List * @param parentFieldName 父级字段名称 * @return */ public final List<Map<String, Object>> listToTree1(List<T> entityList, String parentFieldName){ //返回的map Tree树形结构 List<Map<String, Object>> treeMap = new ...
/** * 对象List转为Tree树形结构 * @param entityList 传进来的泛型List * @param parentFieldName 父级字段名称 * @return */ public final List<Map<String, Object>> listToTree1(List<T> entityList, String parentFieldName){ //返回的map Tree树形结构 List<Map<Strin...
* 对象List转为Tree树形结构 * @param entityList 传进来的泛型List * @param parentFieldName 父级字段名称 * @return */ public final List<Map<String, Object>> listToTree1(List<T> entityList, String parentFieldName){ //返回的map Tree树形结构 ...
@ApiOperation(value= "树形结构列表") @GetMapping("/list")publicResponseEntity listUser() { TreeNode node=newTreeNode(); List<Test2> treeList =test2Service.getTreeList();if(treeList.size() > 0) {for(Test2 test : treeList) {//初始化TreeNode tn =newTreeNode(test.getId(), test.getParen...
publicclassTreeNode{privateString id;privateString pid;privateString name;privateList<TreeNode>children = new ArrayList<>(); public TreeNode(){}public TreeNode(String id, String pid, String name){this.id=id;this.pid=pid;this.name=name;}public String getId(){returnid;}public void setId(Stri...
首先,我们需要定义一个TreeNode类来表示树形结构中的节点。这个类至少应该包含节点的ID、父节点ID、子节点列表以及其他可能的属性。 java public class TreeNode { private String id; private String parentId; private List<TreeNode> children; private Map<String, Object> attributes; public Tree...