0

我有一个像这样的A类:

class A {
    Long id;
    String name;
    Long parentId; // refers to another A object's id
}  

现在我得到了 A 对象的列表,我想将它们全部放入 PC 中的“文件夹树”之类的数据结构中,然后使用 JSP 在 GUI 上查看该树,但我不知道如何实现这一点。那么您能否帮助解决这两个问题:
1. 如何从给定的对象列表中构建“文件夹树”?有任何可用的 API 支持吗?
2. 我们如何在不使用递归的情况下浏览整个数据树并将其作为文件夹树在 JSP 上查看?(我的意思是显示它们的最佳方式是什么)
非常感谢。

4

1 回答 1

0

根据您的评论,我假设您可以将您的A课程更改为如下所示:

class A {
    Long id;
    String name;
    Long parentId; // refers to another A object's id
    List<A> childrenNodes = new ArrayList();
}

现在,假设您已经List<A> lstData填充了所有数据并且想要将其转换为树,您可以使用以下代码/算法:

public List<A> convertIntoTree(List<A> lstData) {
    for(A parentA : lstData) {
        //setting the children nodes for parentA
        for(A childA : lstData) {
            if (childA.getParentId() == parentA.getId()) {
                parentA.getChildrenNodes().add(childA);
            }
        }
    }
    //the main tree
    List<A> lstParents = new ArrayList<A>();
    //filling the tree
    for(A parentA : lstData) {
        //change this for your check if parent function or another rule
        if (parentA.getParentId() == 0) {
            lstParents.add(parentA);
        }
    }
    return lstParents;
}
于 2013-02-27T08:22:31.630 回答