可以通过以下方法实现:

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的全部父节点

ListBusinessDomainVo BusinessDomainVo通过BusinessDomainVo查找ListBusinessDomainVo中全部的父节点树形数据 java8

原文地址: http://www.cveoy.top/t/topic/iXtj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录