Java List转换为树结构

实体类:

@Data
@TableName("national_industry")
public class TNationalIndustry {
    
	/**主键id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键id")
	private Integer id;
	/**编码*/
	@Excel(name = "编码", width = 15)
    @ApiModelProperty(value = "编码")
	private String code;
	/**名称*/
	@Excel(name = "名称", width = 15)
    @ApiModelProperty(value = "名称")
	private String name;
	/**父级编码*/
	@Excel(name = "父级编码", width = 15)
    @ApiModelProperty(value = "父级编码")
	private String parentCode;
	/**是否叶子节点: 1:是 0:不是*/
	@Excel(name = "是否叶子节点: 1:是 0:不是", width = 15)
	@ApiModelProperty(value = "是否叶子节点: 1:是 0:不是")
	private Boolean isLeaf;
	/**级别*/
	@Excel(name = "级别", width = 15)
	@ApiModelProperty(value = "级别")
	private String sort;
	@TableField(exist = false)
	@ApiModelProperty(value = "子级")
	private List<TNationalIndustry> children;
}

转换方法:

private List<TNationalIndustry> getTreeList(List<TNationalIndustry> treeList, String code) {
       List<TNationalIndustry> collect = treeList.stream()
               //过滤父节点与传递的id相同的TreeNode对象
               .filter(treeNode -> treeNode.getParentCode().equals(code))
               .map(treeNode -> {
                   //递归设置孩子节点
                   treeNode.setChildren(getTreeList(treeList, treeNode.getCode()));
                   return treeNode;
               })
               .collect(Collectors.toList());
       return collect;
   }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值