gpt4 book ai didi

java - 如何在满足特定条件后从递归中退出并返回对象

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

我有一个 reusrion 函数,我想在满足特定条件时立即返回对象。该函数如下所示。

GroupNavigationItemSRO getCategorySpecificNavItem(List<GroupNavigationItemSRO> items,String url) {
GroupNavigationItemSRO sro = new GroupNavigationItemSRO();
if(items != null && !items.isEmpty()){
for(GroupNavigationItemSRO item : items) {
if(item.getUrl().equals(url)) {
LOG.info("Found Specific Url");
return item;
}
else
getCategorySpecificNavItem(item.getChildren(),url);
}
}
return null;
}

现在函数返回 null,我明白为什么它会发生,尽管满足条件。如何避免这种情况并在找到 url 后立即结束递归。

最佳答案

您想要做的就是找到它后停止查找,然后递归直到找到为止。

现有代码的主要问题是递归调用的返回值被忽略。相反,您想要查看该返回值,如果它不是 null,则返回它;你已经完成了:

for(GroupNavigationItemSRO item : items) {
if(item.getUrl().equals(url)) {
LOG.info("Found Specific Url");
return item;
}
else {
GroupNavigationItemSRO itemFromChild = getCategorySpecificNavItem(item.getChildren(),url);
if (itemFromChild != null) {
// Found!
return itemFromChild;
}
}
}

关于java - 如何在满足特定条件后从递归中退出并返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061154/

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