Java将父子数据拆分
时间: 2024-03-23 21:37:56 浏览: 60
通过父编码信息给子节点分组
如果您想将父子数据拆分,可以考虑使用Java中的递归算法来实现。以下是一个示例代码,可以将输入的数据拆分成父节点和子节点,然后将它们存储在不同的列表中:
```
public class ParentChildSplitter {
public static void main(String[] args) {
List<String> input = Arrays.asList("A/B", "A/C", "B/D", "C/E", "E/F");
List<String> parents = new ArrayList<>();
List<String> children = new ArrayList<>();
split(input, parents, children);
System.out.println("Parents: " + parents);
System.out.println("Children: " + children);
}
public static void split(List<String> input, List<String> parents, List<String> children) {
for (String s : input) {
String[] parts = s.split("/");
if (parts.length == 1) {
parents.add(parts[0]);
} else {
parents.add(parts[0]);
children.add(parts[1]);
}
}
List<String> newParents = new ArrayList<>(children);
List<String> newChildren = new ArrayList<>();
for (String c : children) {
List<String> temp = new ArrayList<>();
for (String s : input) {
if (s.startsWith(c + "/")) {
temp.add(s.substring(c.length() + 1));
}
}
split(temp, newParents, newChildren);
}
parents.addAll(newParents);
children.addAll(newChildren);
}
}
```
在此示例中,我们首先将输入数据按照“/”拆分成父节点和子节点,并将它们存储在不同的列表中。然后,我们使用递归算法来处理子节点,将它们与输入数据中的其他节点进行匹配,以确定它们的子节点。最后,我们将所有的父节点和子节点都合并到最终的列表中。
阅读全文