ListBusinessDomainVo BusinessDomainVo通过BusinessDomainVo查找ListBusinessDomainVo中全部的父节点树形数据 java8
可以通过以下方法实现:
public List<BusinessDomainVo> getParentTree(List<BusinessDomainVo> list, BusinessDomainVo node) {
List<BusinessDomainVo> tree = new ArrayList<>();
BusinessDomainVo parent = findParent(list, node);
while (parent != null) {
tree.add(parent);
parent = findParent(list, parent);
}
return tree;
}
public BusinessDomainVo findParent(List<BusinessDomainVo> list, BusinessDomainVo node) {
for (BusinessDomainVo item : list) {
if (item.getId().equals(node.getParentId())) {
return item;
}
}
return null;
}
这里的getParentTree方法接受一个List<BusinessDomainVo>和一个BusinessDomainVo参数,返回一个包含全部父节点的树形数据。该方法会通过调用findParent方法找到每个父节点,然后将父节点添加到结果列表中,直到找不到父节点为止。findParent方法会遍历列表,找到指定节点的父节点并返回。
使用示例:
List<BusinessDomainVo> list = new ArrayList<>();
// 假设list中有一些数据
BusinessDomainVo node = new BusinessDomainVo();
node.setId("子节点的ID");
node.setParentId("父节点的ID");
List<BusinessDomainVo> parentTree = getParentTree(list, node);
这样,parentTree列表中就包含了node的全部父节点
原文地址: http://www.cveoy.top/t/topic/iXtj 著作权归作者所有。请勿转载和采集!