returnjsonArrayTree.toJavaList(TestEntity.class); } 方法三: /** * 使用递归方法建树 * @param testEntity 子节点集合 * @return List<TestEntity> */ public static List<TestEntity> buildTree(List<TestEntity> testEntity) { List<TestEntity> trees = new ArrayList<>(); for (TestEntity Tes...
*@return*/publicstaticList<TreeNode>listToTree(List<TreeNode> list,longrootId){ List<TreeNode> tree=newArrayList<TreeNode>(); Map<Long, TreeNode> map =newHashMap<Long, TreeNode>();// 将所有的数据,以键值对的形式装入map中for(TreeNode node : list) {// 去除冗余的子节点node.setChildren(...
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 ...
.collect(Collectors.toList()); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 用java8的stream,三行代码实现。 public static List<Zone> buildTree3(List<Zone> zoneList) { Map<String, List<Zone>> zoneByParentIdMap = zoneList.stream().collect(Collectors.groupingBy(Zone::getParentId)...
很多时候为满足前后端交互的数据结构需求,往往我们需要把平铺的List数据与Tree型层级数据结构进行互转,这篇文章提供详实的递归和非递归的方式去实现数据结构转换,为了使用到lambda的特性,Java version >=8。 需求 我们从基础设施层获取了一个列表数据,列表其中的对象结构如下,注意约束条件如果没有pid,默认为null。
((val - 1) / 2); parent.children.add(node); } } return root; } public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(0); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); TreeNode root = listToTree(list); } ...
在Java中,将List对象转换为Tree结构通常涉及以下几个步骤:定义Tree和TreeNode的数据结构、遍历List并创建TreeNode、根据父子关系构建Tree、将TreeNode添加到Tree中,并最后返回构建好的Tree对象。以下是一个详细的步骤说明和示例代码: 1. 创建一个Tree的数据结构 首先,我们需要定义一个Tree类,用于存储根节点和可能的其他...
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(...
* @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=newArrayList<>();//将传进的参数entityList转为MapListL...
Java把List集合转成树形结构 代码如下: publicstatic<T,K> List<T> listToTree(List<T> list,Predicate<T> isTop,Function<?superT, ?extendsK> getId , Function<?superT, ?extendsK> getParentId, BiConsumer<T,List<T>>setChilds) {//要点//通过Collectors.groupingBy(Address::getPid)方法对addresses...