gpt4 book ai didi

java - 从 Java 方法的递归调用生成 OL LI 树结构

转载 作者:行者123 更新时间:2023-11-30 05:02:24 28 4
gpt4 key购买 nike

我有节点类型的对象列表(items)。 Node 类中有子级 (childItems)。我想在 ol li html 标记中打印这个结构。

以递归方法准备。但我的逻辑有问题。看看我的代码。

根据给定的示例标记,项目的大小将为 2。意味着存在 2 个顶级 parent 。然后他们还有更多的 child 作为其中的列表。

StringBuffer html = new StringBuffer();

void printValues(ArrayList items){
for (Object o : items){
html.append("<ol>");
html.append("<li>");
Node node = (Node)o;
html.append(node.getName);

if (node.getChildItems()!= null){
printValues(node.getChildItems());
}else{
html.append("</li>");
}
html.append("</ol>");
}
}
// ...........
System.out.println(html.toString(););

//...
public class Node{
String Name;
ArrayList childItems = new ArrayList(); // of type Node
/* getter setters are proper */
}

以下标记是一个示例。它可以是N级。

<ol>
<li>
Manager
<ol>
<li>
Associate Manager
<ol>
<li>
A.M. Configuration 1
</li>
<li>
A.M. Configuration 2
</li>
<li>
Staff Memmber
<ol>
<li>
Staff Memmber Configuration
</li>
<!-- can goes on -->
<li>...</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>
Client Package
<ol>
<li>
Gold
<ol>
<li>
Feature 1
</li>
<li>
Feature 2
</li>
</ol>
</li>
</ol>
</li>

最佳答案

这是一个示例(我对函数相互调用的评论):

public class LiOl {
static StringBuilder sb = new StringBuilder();

static void printList(List<Node> l) {
if (l == null || l.size() == 0) {
return;
}
sb.append("<ol>");
for (Node n : l) {
printNode(n);
}
sb.append("</ol>");
}

static void printNode(Node n) {
sb.append("<li>").append(n.name).append("</li>");

sb.append("<li>");
printList(n.children);
sb.append("</li>");
}

public static void main(String[] args) {
List<Node> l = null;
printList(l);

sb.toString();
}
}

class Node {
String name;
List<Node> children;
}

关于java - 从 Java 方法的递归调用生成 OL LI 树结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6232519/

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