我希望使用两列CSV文件来获取节点的所有子节点的ID和计数,其中一列是父标识,一列是子标识。
例如
Child Id Parent Id
C1 C2
C3 C1
C4 C3
我想要这样的结果:
C2 C1, C3, C4 3
不清楚。你有一些代码或视觉表现吗?如果我正确理解,你可以不是树,而只是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));
}
这里使用伪父,但您应该插入自己的父。