从java中的两列csv文件制作树

问题描述 投票:-1回答:1

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

例如

Child Id   Parent Id
C1         C2
C3         C1
C4         C3

我想要这样的结果:

C2  C1, C3, C4 3
java lookup
1个回答
0
投票

不清楚。你有一些代码或视觉表现吗?如果我正确理解,你可以不是树,而只是Map,其中Key是ParentId,value是你孩子的Integer,或者Object可能看起来像

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

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

这里使用伪父,但您应该插入自己的父。

© www.soinside.com 2019 - 2024. All rights reserved.