gpt4 book ai didi

java - 通过列表元素递归,列表元素也可以有列表

转载 作者:行者123 更新时间:2023-12-01 09:45:38 25 4
gpt4 key购买 nike

我正在寻找一种合适的递归方法来实现以下目标:元素 A 可以有一个列表 L1,其中包含其他元素,例如 A,例如B、C 和 D。这些元素(B、C 和 D)也可以有一个列表 L2、L3、L4。所以我也需要浏览这些列表。背景是我想从所有元素的所有列表中获取名称末尾包含“LB”的所有对象(通过 getName() 检索)。列表中的所有对象都具有相同的类型。我如何实现这一目标?由于我不知道会有多少个元素和列表,我认为递归解决方案是唯一合适的解决方案?

最佳答案

基本上你有一个树结构,这意味着你可能需要某种形式的树遍历。假设我们有这样的树状结构:

class Node<T>{
T value;
List<Node<T>> children = new ArrayList<>();
}

现在,如果您想对每个节点应用回调 C,您将执行如下操作:

public <T> void visit(Node<T> rootNode, Consumer c){
c.consume(rootNode.value);
rootNode.children.forEach(n -> visit(n, c));
}

这称为深度优先遍历。

关于java - 通过列表元素递归,列表元素也可以有列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38073225/

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