我的数据如下所示。如果第1组是父母&有2个孩子A队和A队B队.A队再次成为父母&将球员姓名作为孩子。 B队没有任何孩子。
在另一个场景中,A队是独立的父母&包含一些孩子等..
如果我给团队1,那么它应该获取A队和A队的记录。 B队作为一个捆绑。 如果我给A队,那么它应该获取包含其孩子的A组记录。
我正在考虑使用Map或Tree来实现它。我试过这个 -
public class Node {
private String id;
private List<Node> children = new ArrayList<>();
private Node parent;
..........
//setters and getters
}
但是这里动态创建节点是有问题的,因为我们不知道父节点的级别(在这个例子中有2个)。意思是“Dhoni”再次包含一些像智者一样的孩子。
如何实施?。请指导。
答案 0 :(得分:1)
无论我从问题描述中理解什么,我都会在这里总结一下。你正在寻找一个可以取父名(密钥)的数据结构,它可能有孩子,每个孩子也可以进一步扩展。
public class Node {
private String id; // for each level you have key defined.
private List<Node> children = new ArrayList<>(); //using given key you can get children list
}
您可以在这里使用地图
Map<String, List<Node>> // here key is team name etc., and list represents children.
如果您将team1作为密钥,则会获得包含teamA,teamB的列表。因此,如果你想进一步检查,检查列表大小,如果它大于零,你可以得到孩子(此外你可以得到为teamA,teamB定义的所有玩家),否则你就是最后一个孩子。