Java一个表树形结构大类数据,java处理数据,输出树形结构

java处理数据,输出树形结构

java处理数据,输出树形结构

[var1]

mongo数据库表数据结构,如下

9b09162a0479f7aeb720d96c25814e17.png

java类处理方法

package com.necibook.resource.model.vo;

import io.swagger.annotations.ApiModelProperty;

import lombok.Data;

import org.apache.commons.lang.StringUtils;

import java.util.*;

/**

* @author lbx

* @date 2020-08-24

*/

@Data

public class ResourceExamTypeVo {

/**

* 唯一标识,每三位表示一级

*/

private String id;

/**

* 类型名称

*/

private String typeName;

/**

* 上级类型标识

*/

private String seniorId;

/**

* 学段标识

*/

private String stageId;

/**

* 层级

*/

private String level;

/**

* 排序

*/

private String displayOrder;

@ApiModelProperty(value = "子级集合")

protected List subList;

public void add(ResourceExamTypeVo node) {

if (this.subList == null) {

this.subList = new ArrayList<>();

}

subList.add(node);

}

public static List bulid(List treeNodes, String root) {

Map allNodes = new HashMap();

Iterator var3 = treeNodes.iterator();

while (var3.hasNext()) {

ResourceExamTypeVo treeNode = (ResourceExamTypeVo) var3.next();

allNodes.put(treeNode.getId(), treeNode);

}

Map allRoots = new LinkedHashMap();

Iterator var8 = treeNodes.iterator();

while (true) {

ResourceExamTypeVo parentNode;

while (var8.hasNext()) {

ResourceExamTypeVo treeNode = (ResourceExamTypeVo) var8.next();

if (StringUtils.isNotBlank(root) && treeNode.getId().equals(root)) {

allRoots.put(treeNode.getId(), treeNode);

} else if (StringUtils.isBlank(treeNode.getSeniorId())) {

allRoots.put(treeNode.getId(), treeNode);

} else if (StringUtils.isNotBlank(root) && root.equals(treeNode.getSeniorId()) && !allNodes.containsKey(root)) {

allRoots.put(treeNode.getId(), treeNode);

} else if (StringUtils.isNotBlank(treeNode.getSeniorId())) {

parentNode = (ResourceExamTypeVo) allNodes.get(treeNode.getSeniorId());

if (parentNode != null) {

if (parentNode.getSubList() == null) {

parentNode.setSubList(new ArrayList());

}

parentNode.add(treeNode);

}

}

}

List ret = new ArrayList();

Iterator var10 = allRoots.values().iterator();

while (var10.hasNext()) {

parentNode = (ResourceExamTypeVo) var10.next();

ret.add(parentNode);

}

return ret;

}

}

public static List bulid(List treeNodes) {

return ResourceExamTypeVo.bulid(treeNodes, "0");

}

public ResourceExamTypeVo() {

}

}

serviceImpl,读取数据传入bulid方法

package com.necibook.resource.service.impl;

import com.necibook.resource.model.entity.ResourceExamTypeEntity;

import com.necibook.resource.model.vo.ResourceExamTypeVo;

import com.necibook.resource.service.ResourceExamTypeService;

import ma.glasnost.orika.MapperFacade;

import org.apache.commons.lang3.StringUtils;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.stereotype.Service;

import javax.annotation.Resource;

import java.util.List;

@Service

public class ResourceExamTypeServiceImpl implements ResourceExamTypeService {

@Resource

private MongoTemplate mongoTemplate;

@Resource

private MapperFacade mapperFacade;

@Override

public List baseShoolMajor(String id) {

List resourceExamTypeEntityList = mongoTemplate.findAll(ResourceExamTypeEntity.class);

List resourceExamTypeVoList = mapperFacade.mapAsList(resourceExamTypeEntityList, ResourceExamTypeVo.class);

String root = StringUtils.isNotBlank(id) ? id : "0";

resourceExamTypeVoList = ResourceExamTypeVo.bulid(resourceExamTypeVoList, root);

return resourceExamTypeVoList;

}

}

返回值数据结构,如下

{

"code": 0,

"message": "success",

"tipMsg": null,

"result": [

{

"id": "01",

"typeName": "哲学",

"seniorId": "0",

"stageId": "3",

"level": "1",

"displayOrder": "1",

"subList": [

{

"id": "0101",

"typeName": "哲学类",

"seniorId": "01",

"stageId": "3",

"level": "2",

"displayOrder": "2",

"subList": [

{

"id": "010101",

"typeName": "哲学",

"seniorId": "0101",

"stageId": "3",

"level": "3",

"displayOrder": "3",

"subList": []

},

{

"id": "010102",

"typeName": "逻辑学",

"seniorId": "0101",

"stageId": "3",

"level": "3",

"displayOrder": "3",

"subList": []

},

{

"id": "010103K",

"typeName": "宗教学",

"seniorId": "0101",

"stageId": "3",

"level": "3",

"displayOrder": "3",

"subList": []

},

{

"id": "010104T",

"typeName": "伦理学",

"seniorId": "0101",

"stageId": "3",

"level": "3",

"displayOrder": "3",

"subList": []

}

]

}

]

}

]

}

java处理数据,输出树形结构相关教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值