请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

categoryVo.setSubCategories(subCategoryVoList)是否应该写在内层for循环外

for (CategoryVo categoryVo : categoryVoList) {
            List<CategoryVo> subCategoryVoList = new ArrayList<>();

            for (Category category : categories) {
                //如果查到内容,设置subCategory,继续往下查
                if (categoryVo.getId().equals(category.getParentId())) {
                    CategoryVo subcategoryVo = category2CategoryVo(category);
                    subCategoryVoList.add(subcategoryVo);
                }

            }
            categoryVo.setSubCategories(subCategoryVoList);
        }

老师,categoryVo.setSubCategories(subCategoryVoList);这一句是不是应该写在内层for循环的外面?因为SubCategories应该是直接添加所有子类目的list。
再就是我发现写在里面和外面结果一样,这是为啥?

正在回答

1回答

本质上都是一样的呀
放里面就是内循环一次将categoryVo对象的SubCategories赋值一次

放外面就相当于把整个内循环的结果一次赋值给那个属性

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯卡7305440 #1
    好的我懂了,就是放里面每次都会把subCategoryVoList 的地址传给categoryVo对象的SubCategories属性,所以最后SubCategories拿到的还是subCategoryVoList 的地址,而此时subCategoryVoList 已经装满了。
    回复 有任何疑惑可以回复我~ 2022-04-22 19:46:25
  • 提问者 慕斯卡7305440 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2022-04-27 17:02:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信