的存储字符串值下图显示了如何需要我的数据存储和相互链接:有四个级别层次
值V1,V2等都是独一无二的。对于不同的v1 ... n,Av1 ... n和n1 .... n对应应该是相同的。一旦存储,我需要检索它在以下格式:
V1,Av1,n1
V1,Av1.n2
.
.
.
.
v4,Av1,n1
你如何建议我这样做?
的存储字符串值下图显示了如何需要我的数据存储和相互链接:有四个级别层次
值V1,V2等都是独一无二的。对于不同的v1 ... n,Av1 ... n和n1 .... n对应应该是相同的。一旦存储,我需要检索它在以下格式:
V1,Av1,n1
V1,Av1.n2
.
.
.
.
v4,Av1,n1
你如何建议我这样做?
使用树类来存储树的名称及其子。然后遍历一个递归逻辑并打印出来。
import java.util.ArrayList;
import java.util.List;
class Tree{
private List<Tree> childTree;
private String name;
public Tree(String name) {
this.name = name;
}
public List<Tree> getChildTree() {
return childTree;
}
public void setChildTree(List<Tree> childTree) {
this.childTree = childTree;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class TestDrive {
public static void main(String arr[]){
//Storing the values
Tree a1 = new Tree("A1");
Tree v1 = new Tree("v1");
Tree v2 = new Tree("v2");
List<Tree> a1Child = new ArrayList<Tree>();
a1Child.add(v1);
a1Child.add(v2);
a1.setChildTree(a1Child);
Tree av1 = new Tree("av1");
Tree av2 = new Tree("av2");
List<Tree> v1Child = new ArrayList<Tree>();
v1Child.add(av1);
v1Child.add(av2);
v1.setChildTree(v1Child);
Tree n1 = new Tree("n1");
Tree n2 = new Tree("n2");
List<Tree> av1Child = new ArrayList<Tree>();
av1Child.add(n1);
av1Child.add(n2);
av1.setChildTree(av1Child);
Tree n11 = new Tree("n1");
Tree n22 = new Tree("n2");
List<Tree> av2Child = new ArrayList<Tree>();
av2Child.add(n11);
av2Child.add(n22);
av2.setChildTree(av2Child);
//Retrieving the values
printValue(a1,"");
}
private static void printValue(Tree tree,String treeName) {
treeName = treeName+" : "+tree.getName();
if(tree.getChildTree()!=null){
List<Tree> childTreeList = tree.getChildTree();
for (Tree childTree : childTreeList) {
printValue(childTree,treeName);
}
}else{
System.out.println(treeName);
}
}
}
这对于打印这些值的工作,它来完美。我必须将这4个值的每一行传递给所有组合的sql查询,以查找它是否存在于数据库中。我该怎么做?(真的很新)。 – Leocode 2014-09-11 14:24:39
@Leocode要执行选择查询,您需要查找树节点的组合。递归参数'treeName'在这里是关键,因为它拥有组合。我用':'来组合树名。你可以通过在我打印它的地方分割'treeName'来实现你的需求'(System.out.println(treeName);)'和数据库交谈。除了'String'参数外,你还可以传递'ArrayList
我不知道这是否是最好的答案或最佳的解决方案,但我接受它,因为它对我来说真的很好。非常感谢。 – Leocode 2014-09-12 11:14:03
我想你可以使用xml – 2014-09-11 11:42:33