Java 关系树自下而上
Java Relational Tree Bottom Up
大家好,我一直在努力寻找解决问题的方法。我想在我的 JavaFx 应用程序中实现 ControlsFX CheckTreeView。基本上我有一个字符串列表,其格式与网站上的导航栏相匹配。到目前为止,示例 Admin.Config.User 将是字符串之一。我已经解析了这些 String 并将它们转换为 LinkedHashMap,其中每个 parent 具有 children 将存储每个 child 和 child 的 CheckBoxTreeItem 的列表。
创建 CheckTreeView 时 object 您可以传递 Root CheckBoxTreeItem 或不带参数进行初始化。
CheckBoxTreeItem Documentation
我很难想象如何构建从下到根 CheckBoxTreeItem 的树。
// Contains the Nodes with children and corresponding CheckBoxTreeItems
LinkedHashMap<String, LinkedHashMap<String, CheckBoxTreeItem<String>>> navPaths = new LinkedHashMap<String, LinkedHashMap<String, CheckBoxTreeItem<String>>>();
// Was thinking about using this as a check to make sure duplicates are not added
LinkedHasMap<String, String> alreadyAdded = new LinkedHashMap<String, String>
// Check Tree View
CheckTreeView<String> checkTreeView = new CheckTreeView<>();
for(String pathNode : navPaths.keySet()){
for(String childName : testPaths.get(pathNode).keySet()){
// Completely lost once I get here
}
}
// Set built root
//checkTreeView.setRoot();
我真的在这个概念上苦苦挣扎,以至于我还没有走得太远,如果看起来我没有付出任何努力,我深表歉意。在过去的 12 个小时里,我一直在思考这个概念,但我只是一无所获。如果有人能为我提供一些帮助,那将是非常感谢。
我建议摆脱链接的哈希映射,直接解析为 CheckBoxTreeItem(它可能是您完成此任务所需的唯一数据结构)并且(可能)使用递归算法而不是迭代算法。
这里有一个 insert algorithm for a tree,在你的解析例程中使用类似的东西将你解析的每个元素直接插入到 CheckBoxTreeItems 定义的树中。请注意,您将无法完全使用该算法,您将开发适合您特定需求的算法。
我想我真的不应该回答这个问题,因为它还不清楚,但是信息太长了,无法发表评论……至少它可以让你开始另一条路。
大家好,我一直在努力寻找解决问题的方法。我想在我的 JavaFx 应用程序中实现 ControlsFX CheckTreeView。基本上我有一个字符串列表,其格式与网站上的导航栏相匹配。到目前为止,示例 Admin.Config.User 将是字符串之一。我已经解析了这些 String 并将它们转换为 LinkedHashMap,其中每个 parent 具有 children 将存储每个 child 和 child 的 CheckBoxTreeItem 的列表。
创建 CheckTreeView 时 object 您可以传递 Root CheckBoxTreeItem 或不带参数进行初始化。
CheckBoxTreeItem Documentation
我很难想象如何构建从下到根 CheckBoxTreeItem 的树。
// Contains the Nodes with children and corresponding CheckBoxTreeItems
LinkedHashMap<String, LinkedHashMap<String, CheckBoxTreeItem<String>>> navPaths = new LinkedHashMap<String, LinkedHashMap<String, CheckBoxTreeItem<String>>>();
// Was thinking about using this as a check to make sure duplicates are not added
LinkedHasMap<String, String> alreadyAdded = new LinkedHashMap<String, String>
// Check Tree View
CheckTreeView<String> checkTreeView = new CheckTreeView<>();
for(String pathNode : navPaths.keySet()){
for(String childName : testPaths.get(pathNode).keySet()){
// Completely lost once I get here
}
}
// Set built root
//checkTreeView.setRoot();
我真的在这个概念上苦苦挣扎,以至于我还没有走得太远,如果看起来我没有付出任何努力,我深表歉意。在过去的 12 个小时里,我一直在思考这个概念,但我只是一无所获。如果有人能为我提供一些帮助,那将是非常感谢。
我建议摆脱链接的哈希映射,直接解析为 CheckBoxTreeItem(它可能是您完成此任务所需的唯一数据结构)并且(可能)使用递归算法而不是迭代算法。
这里有一个 insert algorithm for a tree,在你的解析例程中使用类似的东西将你解析的每个元素直接插入到 CheckBoxTreeItems 定义的树中。请注意,您将无法完全使用该算法,您将开发适合您特定需求的算法。
我想我真的不应该回答这个问题,因为它还不清楚,但是信息太长了,无法发表评论……至少它可以让你开始另一条路。