有个csv文件,内容为级联关系,有个根节点A,文件部署如下,一共2列
A,B(B为A的下级)
A,C(C为A的下级)
B,D(D为B的下级)
E,F(F为E的下级)
B,G(G为B的下级)
...各行无顺序,根节点为A,我要如何将文件内容生成以A为根节点的树

解决方案 »

  1.   

    楼主知不知道有没有一种叫做xml的文件格式. 
      

  2.   


    问题是布置的题目是csv格式啊,难道生成树时候要转换成xml?求详解...
      

  3.   

    sorry, 没有看要求. 
    试着先按每行的第一列真理, 也就是说将第一列都是A的归一类, 都是B的归一类等等, 然后将它们综合起来做一个索引. 从根节点A开始, 对于每一个需要处理的结点, 先查看索引找出它的所有子节点. 接着就处理每一个子节点, 方法是同样的, 也就是说生成以子节点为根的树, 将子节点与父节点连接起来就行了. 这样一个一个处理完所有的子节点. 注意这个方法是递归的. 
    不知道我是不是表述清楚了. 如果没清楚再回复我吧. 
      

  4.   

    给你个例子看看: private static HashMap<String,ArrayList<String>> tmpMap=new  HashMap<String,ArrayList<String>>();
    private static void putData(String pid,String id)
    {
    ArrayList<String> childList=tmpMap.get(pid);
    if(childList==null)
    {
    childList=new ArrayList<String>();
    tmpMap.put(pid, childList);
    }
    childList.add(id);
    }
    private static void makeTree(String pid,int level)
    {
    System.out.println("level:"+level+","+pid);
    ArrayList<String> childList=tmpMap.get(pid);
    if(childList!=null)
    {
    for(int i=0;i<childList.size();i++)
    {
    makeTree(childList.get(i),level+1);
    }
    }
    }
    public static void main(String[] args) {
    putData("A","B");
    putData("A","C");
    putData("B","D");
    putData("B","G");
    System.out.println(tmpMap.toString());
    makeTree("A",1); }