[英](Data Structure) Java LinkedList objects to Tree
我有这样的A类:
class A {
Long id;
String name;
Long parentId; // refers to another A object's id
}
现在,我得到了A对象的列表,我想将它们全部放入PC中的“文件夹树”之类的数据结构中,然后使用JSP在GUI上查看该树,但我不知道如何实现。 所以,请您帮忙解决以下两个问题:
1.如何从给定的对象列表构建“文件夹树”? 有没有可用的API支持?
2.如何在不使用递归的情况下浏览整个数据树并在JSP上将其作为文件夹树查看? (我的意思是显示它们的最佳方法是什么)
非常感谢。
根据您的评论,我假设您可以将A
类更改为以下形式:
class A {
Long id;
String name;
Long parentId; // refers to another A object's id
List<A> childrenNodes = new ArrayList();
}
现在,假设您有一个用所有数据填充的List<A> lstData
并将其转换为Tree,则可以使用以下代码/算法:
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.