从java中的两列csv文件生成树

从java中的两列csv文件生成树,java,lookup,Java,Lookup,我希望使用两列CSV文件获得节点所有子节点的id和计数,其中一列是父id,一列是子id 例如 Child Id Parent Id C1 C2 C3 C1 C4 C3 我想要这样的结果: C2 C1, C3, C4 3 现在还不清楚。你有它的代码或视觉表现吗? 若我理解正确,你们可以不做树,只做映射,其中键是ParentId,值是你们的子对象或对象的整数 有可能看起来像 class Child { List<String> i

我希望使用两列CSV文件获得节点所有子节点的id和计数,其中一列是父id,一列是子id

例如

Child Id   Parent Id
C1         C2
C3         C1
C4         C3
我想要这样的结果:

C2  C1, C3, C4 3

现在还不清楚。你有它的代码或视觉表现吗? 若我理解正确,你们可以不做树,只做映射,其中键是ParentId,值是你们的子对象或对象的整数 有可能看起来像

class Child {
List<String> ids;
int count;

    public Child(String id) {
        count=1;
        if (ids.size() < 1) {
            ids = new ArrayList<>();
        }
        ids.add(id);
    }

        public Child setChild(String id) {
        if (ids.size() < 1) {
            ids = new ArrayList<>();
        }
        ids.add(id);
        count++;
        return this;
    }

class Main{

//your logic
Map<String, Child> map = new HashMap<>();
    if (!map.containsKey(parent)){
        map.put(parent,new Child(id));
    }else
    map.computeIfPresent(parent, (key, value) -> value.setChild(id));
}
类子类{
列出ID;
整数计数;
公共子项(字符串id){
计数=1;
如果(id.size()<1){
ids=新的ArrayList();
}
添加(id);
}
公共子集合子集合(字符串id){
如果(id.size()<1){
ids=新的ArrayList();
}
添加(id);
计数++;
归还这个;
}
班长{
//你的逻辑
Map Map=newhashmap();
如果(!map.containsKey(父级)){
map.put(父项、新子项(id));
}否则
map.computeIfPresent(parent,(key,value)->value.setChild(id));
}
p.S

如果你只需要数一数你的孩子,那就这么做吧

 String parent = "";
 Map<String, Integer> map = new HashMap<>();

if (!map.containsKey(parent)) {
      map.put(parent, 1);
} else {
      map.computeIfPresent(parent, (key, value) -> new Integer(value.intValue()+1));
        }
String parent=”“;
Map Map=newhashmap();
如果(!map.containsKey(父级)){
map.put(父,1);
}否则{
map.computeIfPresent(父级,(键,值)->新整数(value.intValue()+1));
}

这里使用pseudo parent,但您应该插入自己的父节点。

那么,是什么阻止了您这样做呢?我不知道如何在Java中这样做,您知道如何在任何其他语言中这样做吗?如果您想获得特定节点的子节点数,您必须计算父Id列的值所在的行数e等于您的节点(假设您没有重复的节点)。父id也可以在子id中找到,因为它也有一些父id作为其类似的树结构。请参见,例如,C1在父id中,也在子id中。如果您只需要子
s计数,而不需要完整id和计数,这会更容易,因为您不需要任何对象,如果父id已在maphow中,则只需增加计数器即可获得唯一计数wi如果没有ID,请你用代码告诉我看看我的p.s.你自己的部分应该是
String[]行;String parent=line[i]
其中
i
是你文件的每一行。当然你也应该划分父和子,但这并不难,你可以在网上找到它