我有以下不同的类型
Types:
R -> R1, R2, R3....
RE -> RE1, RE2, RE3....
REA -> REA1, REA2, REA3...
They have the following relationship.
对于给定的项目列表,我想迭代每个叶子并执行一些操作。 现在,我有一个for循环嵌套三个级别。
for (r in Rs) {
List<RE> REs = get(R);
for(re in REs) {
List<REA> REAs = get(re);
for(rea in REAs) {
//do some processing for the list of items
for(each item in items) {
//process each item
}
}
}
}
对于这个迭代的方法有更好的方法吗?
答案 0 :(得分:1)
您不确定使用哪种语言,但可以通过不在本地存储所有列表来缩短该代码段:
for (r in Rs) {
for (re in get(r)) {
for (rea in get(re)) {
for (item in rea) {
//process each item
}
}
}
}
或者你可以递归:
traverse(items) {
if (items.isLeaf()) {
// process items
} else {
for (item in items) {
traverse(item);
}
}
}
traverse(Rs)