上面讲到了平铺列表(List)转树形(Tree)结构,一般来说对于足够后端数据转成前端想要的结构了。但都支持了正向转换,那么反向转换,即树形(Tree)结构如何转平铺列表(List)呢? 递归实现 递归实现,分为两个函数,List<INodeDTO> flatten(List<INodeDTO> flatList)接受外部调用,传入待转换的Tree形结构。第一步便是收集所有...
Map<Integer, List<AppMenuTree>> parentMap = menuList.stream() .collect(Collectors.groupingBy(AppMenuTree::getParentId)); for (Entry<Integer, List<AppMenuTree>> entry : parentMap.entrySet()) { List<AppMenuTree> childMenus = entry.getValue(); // 对子菜单赋值 for (AppMenuTree childMenu ...
*@paramchildrenFieldName 模型中作为children的字段名称*/publicstatic<T>voidfillTree(List<T> parentList, List<T> originalList, String keyName, String parentFieldName, String childrenFieldName)throwsException {for(inti = 0; i < parentList.size(); i++) { List<T> children =fillChildren(parentL...
public final List<Map<String, Object>> listToTree1(List<T> entityList, String parentFieldName){ //返回的map Tree树形结构 List<Map<String, Object>> treeMap = new ArrayList<>();//将传进的参数entityList转为MapList List<Map<String, Object>> listMap = JSON.parseObject(JSON.toJSONString(en...
把列表转换为树结构 /*** 把列表转换为树结构 * *@paramoriginalList 原始list数据 *@paramkeyName 作为唯一标示的字段名称 *@return组装后的集合*/publicstatic<T> List<T> getTree(List<T> originalList, String keyName)throwsException { String parentFieldName= "parentId"; ...
第二个问题,我的想法是通过一个sql查询查出来所有数据,得到一个 Zone集合,然后就回到了主题,如何用java把list转tree。我第一想法是递归。递归的话,需要考虑几个因素,1.终止条件;2.处理逻辑,3.参数(数据参数,当前层级),4.返回值,然后套入这个问题,分析如下: ...
* 实体类,list中的元素(数据库存储的实体) */@DataprivatestaticclassTag{privateStringid;//节点编号privateStringname;//节点名字privateStringparentId;//节点父级编号}/** * 树中的节点信息 */@DataprivatestaticclassTreeNodeTag{privateStringid;privateStringname;privateStringparentId;//里面的数据就是子节点...
java list 转为tree 文心快码BaiduComate 在Java中将List转换为Tree结构是一个常见的任务,尤其是在处理具有层级关系的数据时。以下是将List转换为Tree结构的详细步骤和示例代码: 1. 确定树结构的数据模型 首先,需要定义一个表示树节点的类。这个类通常包含节点的数据以及指向其子节点的引用。例如: java import java...
比较parentId和id集合,获取到顶级下的第二级 对两个id列表进行set,然后通过set的removeAll方法过滤到id Set<String> idSet = childList.stream().map(templateInfo -> templateInfo.getFdId()).collect(Collectors.toSet()); Set<String> parentIdSet = parentIdMap.keySet(); HashSet<String> set = new ...
}publicvoidsetChildren(List<Zone>children) {this.children =children; } } 工具类 packagecom.springbootemaildemo.tree.zone;importorg.apache.commons.collections4.CollectionUtils;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.stream.Collectors;publ...