查询树形目录(内存遍历成树返回)

这篇具有很好参考价值的文章主要介绍了查询树形目录(内存遍历成树返回)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实体

@Data
@TableName("dtp_sm_servicetype")
@ApiModel(value = "SmServicetype对象", description = "服务类型")
@EqualsAndHashCode(callSuper = true)
public class SmServicetype extends BaseEntity {

	@ApiModelProperty("服务类型名称")
	private String name;
	@ApiModelProperty("服务标题")
	private String title;
	@ApiModelProperty("服务分类描述")
	private String descinfo;
	@ApiModelProperty("服务分类父节点编号")
	private Long parentId;
	@ApiModelProperty("排序")
	private Integer orderIndex;

	// 存储下(子)级节点信息
	@TableField(exist = false)
	private List<SmServicetype> childrenList;
}


调用

/**
 * 服务类型 分页
 */
@ApiOperation(value = "查询所有服务类型", notes = "传入smServicetype")
public R<List<SmServicetypeVO>> serviceTypeTree(SmServicetype smServicetype) {
	//查询所有树数据list
	List<SmServicetype> allList = smServicetypeService.list();
	// 内存中递归成树
	List<SmServicetype> typeTreeList = this.selectSmServicetypeTrees(allList);
	return R.data(SmServicetypeWrapper.build().listVO(typeTreeList));
}

private List<SmServicetype> selectSmServicetypeTrees(List<SmServicetype> smServicetypeList) {
	List<SmServicetype> collect = smServicetypeList.stream()
		.filter(item -> item.getParentId() == -1)   //ParentId=-1的节点为根节点(根据具体情况修改)    filter为过滤不符合条件的
		.map(item -> {
			item.setChildrenList(getChildrenList(item, smServicetypeList));
			return item;
		})
		.collect(Collectors.toList());
	return collect.size() == 0 ? smServicetypeList : collect;

}

private List<SmServicetype> getChildrenList(SmServicetype smServicetype, List<SmServicetype> smServicetypeList) {
	List<SmServicetype> collect = smServicetypeList.stream()
		.filter(item -> item.getParentId().equals(smServicetype.getId()))
		.map(item -> {
			item.setChildrenList(getChildrenList(item, smServicetypeList));
			return item;
		})
		.collect(Collectors.toList());
	return collect;
}

文章来源地址https://www.toymoban.com/news/detail-644737.html

到了这里,关于查询树形目录(内存遍历成树返回)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA安全之目录遍历漏洞

    路径(目录)遍历是攻击者能够访问或存储应用程序运行位置之外的文件和目录的漏洞。这可能会导致从其他目录读取文件,并且在文件上传覆盖关键系统文件的情况下。 例如,假设我们有一个托管一些文件的应用程序,并且可以按以下格式请求它们:http://example.com/file=re

    2024年02月08日
    浏览(28)
  • java 遍历目录 树 递归 控制深度 层数

    在查询数据库树结构或者目录时,通常需要控制深度,或者到第几层。 count为2时, files.listFiles()拿到的是a1,a2。 从a1进入到下一层函数,把1传进去了。files.listFiles()拿到的是b1,这里的count是1。 从a2进入到下一层函数,也是把1传进去了。files.listFiles()拿到的是b2,这里的coun

    2024年02月12日
    浏览(61)
  • 41 JAVA安全-目录遍历访问控制XSS等安全问题

    Javaweb代码分析-目录遍历安全问题 代码解析及框架源码追踪: 第一关: Payload: …/x …/相当于跨越上级目录的符号,…/x可以更改默认上传文件的路径 通过命名文件的名字,在文件名命名加入路径符号,来实现将这个文件在上传路径上的更改 目录解析,如果对方设置了目录解

    2024年01月21日
    浏览(25)
  • Java文件操作(遍历目录中的文件,找到并删除有指定关键字的文件)

    对于通过java对文件继续读取和写入的操作推荐看读取文件和写入文件操作         扫描指定目录中的文件,并找到名称中包含指定字符的所有普通文件(不包括目录),并后续询问用户是否要删除该文件         实际上题目就要求我们对一个指定的目录下的文件进行遍历

    2024年02月13日
    浏览(34)
  • Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296)

    spring-boot-actuator-logview 是一个简单的日志文件查看器作为Spring Boot执行器端点,在 0.2.13 版本之前存在着目录遍历漏洞,编号 CVE-2021-21234。漏洞本质是Spring Boot 执行器通过请求的参数来指定文件名和文件夹路径,经过组合拼接达到目录遍历,虽然源码中检查了文件名(filename)

    2024年02月08日
    浏览(27)
  • js递归遍历树形结构数据,获取所有数组id集合

    实现思路 可以使用递归遍历整个树形数组,将每个节点的id加入到一个数组中,最后返回这个数组即可。 数据准备 代码实现 方式一 获取结果 方式二 获取结果 方式三 获取结果 方法总结 这里的tree是树形数组,result是用来保存所有id的数组。 首先遍历当前层级的每个节点,

    2024年02月11日
    浏览(38)
  • 3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java

    1、hadoop3.1.4简单介绍及部署、简单验证 2、HDFS操作 - shell客户端 3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java 4、HDFS-java操作类HDFSUtil及junit测试(HDFS的常见操作以及H

    2024年02月16日
    浏览(34)
  • Mac 快速生成树形项目结构目录

    我这里使用的是通过包管理 Homebrew 安装形式。没有安装的话可以自行搜索 Homebrew 安装方式 直接到项目的根目录执行 tree 命令 效果如下: or : 效果如下:

    2024年02月15日
    浏览(39)
  • Linux查询java服务占用的内存

     使用top命令可以查询 使用jps -l 可以查询jar包名称和PID  

    2024年02月14日
    浏览(27)
  • 文件管理---索引文件结构、位示图、树形目录结构

    操作系统中对软件的管理就是对文件的管理(基本单位) 逻辑结构:主要是概念当中的一些结构层次,主要有流式文件和记录式文件; 物理结构: 顺序文件结构:按照文件的逻辑顺序存储到物理结构当中,相当于给文件分配一个连续的存储空间,逻辑上是什么形式,物理上

    2024年01月19日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包