首页 > 其他分享 >递归

递归

时间:2023-12-07 21:26:17浏览次数:30  
标签:return 递归 item2 menu item1 entities getSort

@Override public List<CategoryEntity> listWithTree() { //1、查询所有分类 List<CategoryEntity> entities = baseMapper.selectList(null); //2、组装成树状的父子结构 //查出所有的一级分类 List<CategoryEntity> collect = entities.stream().filter(categoryEntity -> categoryEntity.getParentCid() == 0) .map(menu -> { menu.setChildren(getChildrens(menu,entities)); return menu; }).sorted((item1,item2) ->{ return (item1.getSort()== null?0 : item1.getSort()) - (item2.getSort()== null?0 : item2.getSort()); }).collect(Collectors.toList()); return collect; } //递归查找所有菜单的子菜单 private List<CategoryEntity> getChildrens(CategoryEntity menu, List<CategoryEntity> entities) { List<CategoryEntity> childrens = entities.stream().filter(entitie -> entitie.getParentCid().equals(menu.getCatId())) .map(item -> { item.setChildren(getChildrens(item, entities)); return item; }).sorted((item1,item2) ->{ return (item1.getSort() == null ? 0 : item1.getSort()) - (item2.getSort()== null ? 0 : item2.getSort()); }).collect(Collectors.toList()); return childrens; }

标签:return,递归,item2,menu,item1,entities,getSort
From: https://www.cnblogs.com/lcmcjq/p/17883977.html

相关文章

  • 两种方法求字符串个数(函数递归和指针)
    前言:我先想讲一个关于指针的问题,由于我一开始学习指针的时候很困惑,现在分享给大家。假设我们定义一个指针p,我们首先要区分p、&p与*p的区别(对于初学者应该和我一开始一样迷茫)p:p是一个指针变量的名字,表示此指针变量指向的内存地址,如果用%p输出的话它将是一个16进制位的数。*p:*是解引......
  • Python 递归输出树数据 多层级序号
    1.数据结构input_dict={'A':{'B':{'C':{},'D':{}},'E':{'F':{}}},'G':{'H':{},'I':{}}}2.Python代码defco......
  • 关于递归下降总结
    总结递归下降语法分析中,对每个非终结符按其产生式结构构造相应语法分析子程序,其中终结符产生匹配命令,而非终结符则产生过程调用命令,因为最终要匹配的字符串是全部由终结符组成。其中子程序的结构与产生式结构几乎是一致的。识别程序由一组子程序组成,每个子程序对应于一个非终结符......
  • AcWing 92. 递归实现指数型枚举
    题面:从\(1∼n\)这\(n\)个整数中随机选取任意多个,输出所有可能的选择方案(求子集)。原题链接:92.递归实现指数型枚举-AcWing目录:使用dfs树的解法使用二进制与状态压缩的解法1.使用dfs树的解法层级既代表递归深度也代表当前数字,左子树为选该层数字,右子树为不选。#i......
  • 无涯教程-Erlang - 递归
    递归是Erlang的重要组成部分,首先,让我们看看如何通过实现阶乘程序来实现简单的递归。-module(helloLearnfk).-export([fac/1,start/0]).fac(N)whenN==0->1;fac(N)whenN>0->N*fac(N-1).start()->X=fac(4),io:fwrite("~w",[X]).关于上述程序,需要......
  • C# 面试常见递归算法
    前言今天我们主要总结一下C#面试中常见递归算法。C#递归算法计算阶乘的方法一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定......
  • 【算法 Java】递归,阶乘的递归实现,斐波那契数列的递归实现
    递归定义:方法直接或间接地调用方法本身思路:将大问题转化为一个与原问题相似的规模更小的问题注意:递归死循环会导致栈内存溢出一些使用递归求解的问题阶乘Factorial.javaimportjava.util.Scanner;publicclassFactorial{publicstaticvoidmain(String[]args)......
  • 递归下降语法分析程序
    一、目的通过设计、编制、调试一个递归下降语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,掌握常用的语法分析方法。通过本实验,应达到以下目标:(1)掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。(2)掌握语法分析的实现方法......
  • 递归
    递归的三个步骤递归前进段,临界条件递归返回段 varcheckId=[];//选中的树节点varj=0;functionbianli(checkedData){    for(variincheckedData){      //过滤,只处理满足此条件的,不需要过滤则去掉这层if      if(checkedDat......
  • 秦疆的Java课程笔记:50 方法 递归讲解
    一般情况下,我们用A方法调用B方法。递归就是,A方法调用A方法,自己调用自己。利用递归可以用简单的程序来解决一些复杂的问题。通常把一个大型复杂的问题转化为一个与原问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可描述出解题过程所需要的多此重复计算,大大减少了程......