当前位置: 首页 > news >正文

搜狐网站建设的建议常州有哪些做阿里巴巴网站的

搜狐网站建设的建议,常州有哪些做阿里巴巴网站的,淄博网站建设找卓迅,大兴区网站建设公司在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看&#x…

        在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看,代码实现为了实现简单,就模拟查看数据库所有数据到List里面。

        为了实现这种效果:

下面就使用的一个简单的例子进行演示:

实体类:Departments.java

@Data
@Builder
public class Departments {/*** id*/public Integer id;/*** 名称*/public String name;/*** 父id ,根节点为0*/public Integer parentId;/*** 子节点信息*/public List<Departments> childList;public Departments(Integer id, String name, Integer parentId) {this.id = id;this.name = name;this.parentId = parentId;}public Departments(Integer id, String name, Integer parentId, List<Departments> childList) {this.id = id;this.name = name;this.parentId = parentId;this.childList = childList;}
}

使用递归构建树形结构

public class DepartmentsTreeTest {@Testpublic void testtree() {// 模拟从数据库查询出来的菜单数据List<Departments> departments = Arrays.asList(new Departments(1, "总行", 0),new Departments(2, "分行", 1),new Departments(3, "攀枝花分行", 2),new Departments(4, "成都分行", 2),new Departments(5, "凉山分行", 2),new Departments(6, "支行", 1),new Departments(7, "绵阳支行", 6),new Departments(8, "德阳支行", 6),new Departments(9, "绵阳支行街道", 7),new Departments(10, "德阳支行街道", 7),new Departments(11, "子公司", 1),new Departments(12, "我是子公司", 11));// 获取部门菜单信息// 通过filter()方法筛选出所有部门菜单项。部门的特征是parentId为0,即没有父节点。这些部门菜单项的列表被称为collectList<Departments> collect = departments.stream().filter(m -> m.getParentId() == 0)// 对于每个部门菜单项,我们使用map()方法来递归所有部门地获取其所有子菜单项,并将这些子菜单项设置为部门菜单项的childList属性。.map((m) -> {m.setChildList(getChildrens(m, departments));return m;}).collect(Collectors.toList());System.out.println("-------转json输出结果-------");System.out.println(JSON.toJSON(collect));}/*** 递归查询部门* @param root 部门* @param all  所有节点* @return 包含所有部门的列表*/private List<Departments> getChildrens(Departments root, List<Departments> all) {// 过滤出所有与部门的id相匹配的部门List<Departments> children = all.stream().filter(m -> {// 当所有节点中的parentid与部门的id一致时,表示为部门的部门return Objects.equals(m.getParentId(), root.getId());}).map((m) -> {// 递归查询该部门的部门m.setChildList(getChildrens(m, all));return m;}).collect(Collectors.toList());return children;}}

输出结果:

        输出的JSON格式的结果你可以直接复制进行测试查看。

 

http://www.yayakq.cn/news/929788/

相关文章:

  • 网站维护一年一般多少钱?山东青岛网站建设公司排名
  • wordpress调用分类栏目芭嘞seo
  • 苏州基础网站建设济南最新消息今天
  • 保山市网站建设手机建站系统
  • 专注东莞微信网站设计创建网站论坛
  • 芜湖做公司网站的如何购买凡客诚品
  • 怎么创建手机网站普通下载app安装app
  • 建邺做网站价格自己做网站用什么软件下载
  • asp网站免费完整源码咸阳北京网站建设
  • 广州网站优化运营wordpress主题 资源站
  • 做网站跟桌面程序差别大吗手机网站建设设计公司
  • 廊坊网站建设优化建设网站收集加工素材教案
  • 北京建站设计wordpress开启多站点好处
  • 购买网站做友情链接网站页脚包括什么
  • 搭建网站的步骤系统优化方法
  • 晋江市住房和城乡建设局网站郑州做商城网站
  • 网站被降权恢复重庆建工招标平台
  • 广州网站建设市场网络营销师报名入口
  • 做有后台的网站企业网站的栏目设置
  • 网站seo推广优化教程wordpress 带数据
  • 网站开发协议书 英文版营销型网站建设营销型网站建设
  • 国内优秀的设计网站推荐友情链接qq群
  • 南京建行网站wordpress左右滑动相册
  • asp网站转手机站张家口建设局网站
  • 建设网站如何选择服务器宁波优化
  • 广州冼村是什么梗网站建设优化服务好么
  • 怎么设置网站的关键字h5网站建设包括什么
  • 茂名快速建站模板网站建设模板系统
  • 枝江市住房和城乡建设局网站二级域名免费发放
  • 顺义免费网站建设几个好用的在线网站