gpt4 book ai didi

java - 遍历嵌套列表以按指定参数返回内部列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:39:22 26 4
gpt4 key购买 nike

目标是从数据列表中返回具有给定参数的对象的内部列表。将在其上找到此对象的图层可能会有所不同。

对象的伪代码是

class Object {
var id: Int
var innerObjects: ArrayList<Object>
}

如果innerObjects param 为 null 然后我们到达了叶子。

我们得到 ArrayList<Object>这是数据和id我们正在寻找。我们搜索的对象可以在列表的任何级别。

我现在拥有的是这段代码,但它只检查列表的 2 层。请提出一个适用于列表中任意数量级别的解决方案。可能与递归。

private fun getObject(data: ArrayList<Object>, id: Int): ArrayList<Object> {
var result = ArrayList<Object>()
for (i in 0 until data.size) {
if (data[i].id == id) {
result = data[i].innerObjects
} else {
for (j in 0 until data[i].innerObjects.size) {
if (data[i].innerObjects[j].id == id) {
result = data[i].innerObjects[j].innerObjects
}
}
}
}
return result
}

顺便说一句,代码是在 Kotlin 中,但请随时提出Kotlin 或 Java 中的解决方案。

最佳答案

我已经为解决方案编写了 java 代码:

ArrayList<TreeNode> solve(TreeNode treeNode, int id) {
if(treeNode == null) return null;
if(treeNode.id == id) return treeNode.nodes;
if(treeNode.nodes == null) return null;
ArrayList<TreeNode> ans = null, temp = null;
for(TreeNode t: treeNode.nodes) {
temp = solve(t, id);
if(temp != null) ans = temp;
}
return ans;
}

Ideone 演示:https://ideone.com/cMmAqD

关于java - 遍历嵌套列表以按指定参数返回内部列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53422696/

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