实体类
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("SYS_USER")
public class User {
private static final long serialVersionUID = -3089138238598051744L;
/**
* 账号
*/
@TableField("NAME")
private String name;
/**
* 密码
*/
@TableField("PASSWORD")
private String password;
/**
* 昵称
*/
@TableField("NICK_NAME")
private String nickName;
/**
* 备注
*/
@TableField("REMARK")
private String remark;
/**
* 工号
*/
@TableField("WORK_NUM")
private Integer workNum;
@TableField("LEVEL_ID")
private String levelId;
@TableField(exist = false)
private List<User> childList;
}
**
递归代码
**
@GetMapping("/getUser")
public HttpResponses<List<User>> getUser(){
long startTime=System.currentTimeMillis(); //获取开始时间
List<User> list = this.userService.query().eq(User::getStatus,StatusEnum.NORMAL)
.eq(User::getDirty,StatusEnum.NORMAL).list();
//用map写法
/*List<User> listUser = list.stream().filter(user -> user.getLevelId().equals("0")).map(user -> {
user.setChildList(getChildrens(user,list));
return user;
}).collect(Collectors.toList());*/
//用peek写法
List<User> listUser = list.stream().filter(user -> user.getLevelId().equals("0"))
.peek(user -> user.setChildList(getChildrens(user,list))).collect(Collectors.toList());
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
return success(listUser);
}
**
获取子类数据
**
public List<User> getChildrens(User user,List<User> userList){
List<User> childrens = userList.stream().filter(u -> Objects.equals(u.getLevelId(),user.getId())).map(
u -> {
u.setChildList(getChildrens(u,userList));
return u;
}
).collect(Collectors.toList());
return childrens;
}
原文地址:https://blog.csdn.net/code_ang/article/details/116454045