0

私はこのようなクラスAを持っています:

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

ここで、Aオブジェクトのリストを取得し、それらすべてをPCの「フォルダーツリー」などのデータ構造に配置し、JSPを使用してGUIでそのツリーを表示したいのですが、これを実装する方法がわかりません。では、これら2つの問題について助けていただけません
か。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 に答える