import java.util.*;class Category{
String nodeid,nodename,haschild,parentid;
public Category(String nodeid,String nodename,String haschild,String parentid){
this.nodeid=nodeid;
this.nodename=nodename;
this.haschild=haschild;
this.parentid=parentid;
System.out.println(nodeid+","+nodename+","+haschild+","+parentid);
}
public String toString(){
return nodeid+","+nodename+","+haschild+","+parentid;
}
}public class TestTreeNode {
public static String createTree(List data){
StringBuffer buf=new StringBuffer();
buf.append("<Categories>\n");
List root=getRootNode(data);
Iterator it=root.iterator();
while(it.hasNext()){
Category temp=(Category)it.next();
System.out.println("temp--"+temp);
writeNode(temp,data,buf,1);
}
buf.append("</Categories>\n");
return buf.toString();
}
public static List getRootNode(List data){
List root=new ArrayList();
Iterator it=data.iterator();
while(it.hasNext()){
Category temp=(Category)it.next();
if (temp.parentid==null){
System.out.println("root:"+temp);
root.add(temp);
}
}
return root;
}
public static void writeNode(Category node,List data,StringBuffer buf,int deep){
for (int i=0;i<deep;i++){
buf.append(" ");
}
buf.append("<Category id=\"");
buf.append(node.nodeid);
buf.append(" name=\"");
buf.append(node.nodename);
buf.append("\">\n");
Iterator it=data.iterator();
while(it.hasNext()){
Category temp=(Category)it.next();
if (node.nodeid.equals(temp.parentid)){
writeNode(temp,data,buf,deep+1);
}
}
for (int i=0;i<deep;i++){
buf.append(" ");
}
buf.append("</Category>\n"); }
public static void main(String[] args){
List test=new ArrayList();
Random random=new Random();
int r1=random.nextInt(10)+1;
for (int i=0;i<r1;i++){
String s1=String.valueOf(i);
test.add(new Category(s1,"node "+s1,null,null));
int r2=random.nextInt(10);
for (int j=0;j<r2;j++){
String s2=s1+"."+String.valueOf(j);
test.add(new Category(s2,
"node "+s2,null,s1));
int r3=random.nextInt(10);
for (int k=0;k<r3;k++){
String s3=s2+"."+String.valueOf(k);
test.add(new Category(s3,
"node "+s3,null,s2));
}
}
} System.out.println(createTree(test));
}
}
String nodeid,nodename,haschild,parentid;
public Category(String nodeid,String nodename,String haschild,String parentid){
this.nodeid=nodeid;
this.nodename=nodename;
this.haschild=haschild;
this.parentid=parentid;
System.out.println(nodeid+","+nodename+","+haschild+","+parentid);
}
public String toString(){
return nodeid+","+nodename+","+haschild+","+parentid;
}
}public class TestTreeNode {
public static String createTree(List data){
StringBuffer buf=new StringBuffer();
buf.append("<Categories>\n");
List root=getRootNode(data);
Iterator it=root.iterator();
while(it.hasNext()){
Category temp=(Category)it.next();
System.out.println("temp--"+temp);
writeNode(temp,data,buf,1);
}
buf.append("</Categories>\n");
return buf.toString();
}
public static List getRootNode(List data){
List root=new ArrayList();
Iterator it=data.iterator();
while(it.hasNext()){
Category temp=(Category)it.next();
if (temp.parentid==null){
System.out.println("root:"+temp);
root.add(temp);
}
}
return root;
}
public static void writeNode(Category node,List data,StringBuffer buf,int deep){
for (int i=0;i<deep;i++){
buf.append(" ");
}
buf.append("<Category id=\"");
buf.append(node.nodeid);
buf.append(" name=\"");
buf.append(node.nodename);
buf.append("\">\n");
Iterator it=data.iterator();
while(it.hasNext()){
Category temp=(Category)it.next();
if (node.nodeid.equals(temp.parentid)){
writeNode(temp,data,buf,deep+1);
}
}
for (int i=0;i<deep;i++){
buf.append(" ");
}
buf.append("</Category>\n"); }
public static void main(String[] args){
List test=new ArrayList();
Random random=new Random();
int r1=random.nextInt(10)+1;
for (int i=0;i<r1;i++){
String s1=String.valueOf(i);
test.add(new Category(s1,"node "+s1,null,null));
int r2=random.nextInt(10);
for (int j=0;j<r2;j++){
String s2=s1+"."+String.valueOf(j);
test.add(new Category(s2,
"node "+s2,null,s1));
int r3=random.nextInt(10);
for (int k=0;k<r3;k++){
String s3=s2+"."+String.valueOf(k);
test.add(new Category(s3,
"node "+s3,null,s2));
}
}
} System.out.println(createTree(test));
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货