gpt4 book ai didi

java - 递归对象设置java

转载 作者:行者123 更新时间:2023-12-03 20:25:03 25 4
gpt4 key购买 nike

我有一个模型调用部分。该部分有 2 个字段:颜色和部分对象列表。

public class Section{
public String color;
public List<Section> sub_sections;


}

假设我得到一个带有部分对象列表的 Json 提要。在每个 Section 对象中都有一个设置为随机颜色的颜色字段和另一个 Section 对象列表。在这些嵌套的部分列表中,颜色字段设置为空字符串。我们不知道有多少嵌套部分。

如何将嵌套部分中的所有嵌套颜色字符串设置为与第一级部分中的颜色相同?我的下面的代码是非递归的 3 层深度,以便为您提供问题的侧面。

for(Section section : sectionsList){
for(Section sub : section.sub_sections){
sub.color=section.color;
if(sub.sub_sections.size()> 0){
for(Section sub2 : sub.sub_sections){
sub2.color=sub.color;
if(sub2.sub_sections.size()> 0){
for(Section sub3 : sub2.sub_sections){
sub3.color=sub2.color;
}
}
}
}
}
}

最佳答案

如果我理解你,这可能是一个解决方案。您需要一个不带参数的公共(public)启动方法和一个获取要设置的原始颜色的递归方法。

public class Section{
public String color;
public List<Section> sub_sections;

/** Propagates the current section color to all sub sections. */
public void propagate() {
propagate(this.color);
}

/** Propagates the passed color to this section and all sub sections recursively. */
private void propagate(String propagatedColor) {
color = propagatedColor;
for (Section sub : sub_sections) {
sub.propagate(propagatedColor);
}
}

}

您的使用代码将如下所示:

for (Section section : sectionsList) {
section.propagate();
}

关于java - 递归对象设置java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21486971/

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