获取到所有的站点的所有自己节点
站点类:简单举例 只有id和子级的集合
public class SiteDto {
//站点id
private String id;
//子级集合
List<SiteDto> children;
}
获取所有子级节点方法
public List<String> getAllChildrenIds(String parentId , List<SiteDto> allSite) {
ArrayList<String> childrenSiteIds = new ArrayList<>();
if (StringUtils.isNotEmpty(parentId) && null != allSite && allSite.size() > 0){
try{
for (SiteDto siteDto : allSite) {
if(parentId.equals(siteDto.getParentId())){
//添加子级节点
childrenSiteIds.add(siteDto.getId());
//递归获取深层节点
childrenSiteIds.addAll(getAllChildrenIds(siteDto.getId(),allSite));
}
}
}catch (Exception exception){
}
}
return childrenSiteIds;
}
方法调用
List<SiteDto> siteList = 所有的站点信息集合
for (SiteDto siteDto : siteList) {
//当前站点所有的子级id
List<String> allChildrenIds = getAllChildrenIds(siteDto.getId(), siteList);
}