gpt4 book ai didi

java - 将 pojo 类列表转换为 Jdom 树?

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:28 26 4
gpt4 key购买 nike

我有一个 POJO 类调用 LEVEL & 他的类图是这样的:

    0,1
------------|
| |
| |
\|/ |
level-<>-------

换句话说:

public class Level
{
private int id;
private int label;
private Set<Level> labels;
private Level parent;
...
}

我有一个方法可以从数据库中检索 List<Level> 中的所有级别.

我想要 jdom 表示(使用 org.jdom api)像这样的树(就像目录的树)

LEVEl 1
+++LEVEL 2
++++++LEVEL 3
LEVEL 4
LEVEL 5

我知道算法必须是递归的。

你有什么解决办法吗?有什么工具可以将 java 类转换为 jdom 树?

最佳答案

我不知道有哪个图书馆可以完全满足您的要求。


您的类(class) Level 是正确的,但不是唯一的选择。您还可以添加属性 Set<Level> children 。你可以保留 parent链接与否(双向关系,或多对一)。

这可能会使您的树结构更自然...


例如,如果您正在使用 ORM,例如 Hibernate,您可以只找到第一级实例(在您从 Hibernate 收到的列表中),并且您已经有了树,只需忽略其他情况。


否则,算法解决方案可能是:

  1. 将您所有的实例都放在unprocessed 中列表
  2. 找到所有没有父级的未处理的实例;将它们添加到您的树中,从未处理的中删除它们。
  3. 循环以下内容:
    • 找到所有未处理的实例,它们在树中有它们的父级(如果树没有有效实现 contains,您可以为此使用一个临时集)。
    • 将它们添加到您的树中,从未处理的中删除它们。

关于java - 将 pojo 类列表转换为 Jdom 树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2133782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com