Java分类递归优化

news/2025/2/4 5:54:57/

分类递归很多功能都可以遇到的但是如果数据特别大的情况下就会很慢了

  1. 原代码
List<CategoryEntity> res = entities.stream()// 过滤找出一级分类.filter(categoryEntity -> categoryEntity.getParentCid() == 0)// 处理,给一级菜单递归设置子菜单.peek(menu -> menu.setChildren(getChildless(menu, entities)))// 按sort属性排序.sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());return res;
}
  1. 优化后
 public List<CategoryEntity> listWithLambda() {List<CategoryEntity> entities = new ArrayList<>(baseMapper.selectList(Wrappers.<CategoryEntity>lambdaQuery().orderByDesc(CategoryEntity::getCatId)));Map<Long, List<CategoryEntity>> longListNavigableMap = entities.stream().collect(Collectors.groupingBy(CategoryEntity::getParentCid));List<CategoryEntity> res = entities.stream().peek(entity -> {if (longListNavigableMap.containsKey(entity.getCatId())) {entity.setChildren(longListNavigableMap.get(entity.getCatId()));}}).filter(entity -> entity.getCatLevel() == 1).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());return res;
}

http://www.ppmy.cn/news/469690.html

相关文章

二叉树oj以及前中后序非递归写法

1. 根据二叉树创建字符串 给你二叉树的根节点 root &#xff0c;请你采用前序遍历的方式&#xff0c;将二叉树转化为一个由括号和整数组成的字符串&#xff0c;返回构造出的字符串。 空节点使用一对空括号对 “()” 表示&#xff0c;转化后需要省略所有不影响字符串与原始二叉…

正则表达式中+ 与 * 有啥区别?

在正则表达式中&#xff0c;"“和”*"都是量词&#xff0c;用于指定前面的模式可以重复出现的次数。它们之间的区别如下&#xff1a; “”&#xff08;一次或多次&#xff09;&#xff1a;表示前面的模式必须出现至少一次或更多次。它要求前面的模式在匹配中至少出现…

mongo 副本集部署

当前我们使用docker-compose 的方式部署mongodb 副本集。当然&#xff0c;最佳还是使用kubernetes进行mongodb副本集的部署。 环境准备 1.安装docker&#xff0c;docker-compose 生成keyFile MongoDB使用keyFile认证&#xff0c;副本集中的每个MongoDB实例使用内容作为认证…

耳朵疼痛, 导致整个脸都疼痛并且张不开嘴 , 因为张嘴的时候耳后的肌肉疼痛---外耳道炎

近期亲身经历了这种疾病&#xff0c; 经过就诊查明 &#xff0c; 基本原因是因为外耳道损伤引起的伤口细菌感染 &#xff0c; 造成外耳道炎 &#xff0c; 用头孢 连续3天&#xff0c; 外加耳道使用氧氟沙星滴耳液 &#xff0c; 和酒精碘伏棉球消毒 每日三次 &#xff0c; 三天…

UE5下载完打开就崩溃,和用的A卡有关吗

显卡AMD XR 6600XT 内存16G,刚下载完打开就提示GPU崩溃或D3D设备已移除&#xff0c;创建了TdrDelay和TdrDdiDelay两个新注册表的方法不行&#xff0c;卸载Bridge插件也没有用。 崩溃报错&#xff1a;Fatal error: [File:D:\build\UE5\Sync\Engine\Source\Runtime\D3D12RHI\Priv…

RK系列(RK3568) USB hub SD卡热插拔支持

SOC:RK3568 kernel版本:4-19 平台:Android12 问题:GL852L是一款经常用于读卡器的芯片,目前项目上的sd卡由GL862L进行扩展,发现热插拔的时候系统没有反应不支持,查看内核配置也没有这个功能。于是一直研究解决这个问题。 后来发现在应用层可以输入命令打开关闭重新扫描USB…

耳油适合带入耳式耳机吗,试试这几款不入耳的骨传导耳机

骨传导耳机相对于普通耳机&#xff0c;是一种将声音通过人体的颅骨、骨迷路、内耳淋巴液振动膜、听神经等途径传递给听觉中枢&#xff0c;从而使人产生不一样的听觉感受。相比于传统耳机&#xff0c;骨传导耳机不用塞住耳朵&#xff0c;不会对耳膜产生损害等&#xff0c;更适合…

对耳朵伤害最小的耳机类型,盘点几款对耳道有保护的骨传导耳机

相信在大家的认知中&#xff0c;入耳式的耳机在佩戴的过程中是需要将耳机头塞入耳道内部&#xff0c;在这种情况下耳朵就会肿胀&#xff0c;同时也会有着极其不舒适的佩戴体验&#xff0c;甚至会产生中耳炎等疾病的发生&#xff0c;然而前几年发布的骨传导耳机&#xff0c;就无…