在数据库表中,我维护了父文件夹和子文件夹的关系,如下所示 datatable 。使用该关系,我需要在jsp网页中创建分层结构。要显示我使用http://myfaces.apache.org/tomahawk t:tree2组件的结构。我的要求是,我需要从数据库中获取数据并将该关系存储在java变量中。为此,我需要一种递归技术来存储java变量中的树结构或(层次结构)。请帮忙找到答案。
数据表:
目录结构的分层视图:
谢谢
答案 0 :(得分:0)
创建一个Node类,其中包含子节点列表和其他所需的状态变量,如isdirectory等。请求您再次搜索SO,并使用#34; Tree Like Data Structure in Java"。我希望这会有所帮助。
答案 1 :(得分:0)
您可以使用递归来迭代它。
void processChilds(Item child) {
List<Item> childs = selectChilds(child);
for(Item i: childs) {
//do smth
processChilds(i);
}
}
或者您需要一次选择所有记录,然后将其解析为您自己的对象结构。它可以是HashMap或您自己的树状结构。
class Item {
List<Item> childs;
}
我建议你选择第一个(因为编码很简单),除非你的树真的很深
答案 2 :(得分:0)
在Java中创建树结构几乎与任何其他语言相同。您应该阅读Data Structures and Algorithms。
根据您的使用方式,您的数据结构会有所不同。这是一个很容易向上移动的好方法:
class Node
{
private Node parent;
private int value;
}
与叶子(或节点,如果您希望整个树可搜索)上的哈希查找一起,您有一个完美的方法来查找任何文件的路径,并使用这样的结构的路径。如果您有一个节点并且想要找到它的子节点,则不能使用此结构。然后可以使用已经显示为答案之一的更传统的树。