用Java中的两列CSV文件制作树

时间:2019-04-05 05:54:29

标签: java lookup

我想使用两列CSV文件来获取节点的所有子代的ID和计数,其中一列是父ID,一列是子ID。

例如

Child Id   Parent Id
C1         C2
C3         C1
C4         C3

我想要这样的结果:

C2  C1, C3, C4 3

1 个答案:

答案 0 :(得分:0)

尚不清楚。您是否有一些代码或可视化表示形式? 如果我正确理解,则可以使树成树,而不能使树成树,其中键是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));
}

PS

如果您只需要数您的孩子,那就这样做

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

此处使用了伪父级,但您应该插入自己的父级。