日期:2014-05-20  浏览次数:20806 次

java生成树
有个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为根节点的树

------解决方案--------------------
探讨

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


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

------解决方案--------------------
给你个例子看看:
Java code

    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);

    }