//此方法将返回引用名称列表,在此方法中,我使用嵌套//for循环编写代码此方法仅处理3个子文件夹设置如果还有一个子文件夹以及如何处理它//如果没有for循环,总体上我应该动态处理它
// Iterate the subfolders to populate the orgRefName List
//In this we are handling the subfolders with the use of nested for loops, How to handle //the scenario if there is one more child Subfolder dynamically
// How to solve without using additional nested for loop to get the additional for loop
//for循环这个只处理3个子文件夹设置如果还有一个子文件夹怎么办以及如何处理它//如果没有for循环,总的来说我应该动态处理它
for (OrgDetails orgDetails : orgList) {
mainSubFolder = orgDetails.getSubfolders();
for (OrgSubfolderDetails orgDetails2 : mainSubFolder) {
childSubFolder1 = orgDetails2.getSubfolders();
if (!childSubFolder1.isEmpty()) {
for (OrgSubfolderDetails orgDetails3 : childSubFolder1) {
childSubFolder2 = orgDetails3.getSubfolders();
if (!childSubFolder2.isEmpty()) {
for (OrgSubfolderDetails orgDetails4 : childSubFolder2) {
refDetails = orgDetails4.getOrgRefDetails();
if (!refDetails.isEmpty()) {
for (OrgRefDetails orgDetails5 : refDetails) {
RefNameList.add(orgDetails5.getRefName());
}
}
}
}
}
}
}
}
return RefNameList;
}
2条答案
按热度按时间ebdffaop1#
如果您使用的是Java8,那么带有flatmap的streams将帮助您实现这一点。像这样的https://dzone.com/articles/walking-recursive-data
如果Java7,我们可以递归地迭代orgsubfolderdetails。
tpxzln5u2#
您可以使用队列原则。在队列列表中,如果是it分支的最后一个元素,则将其添加到结果列表中,如果不是,则将其childs添加到当前队列列表中。