[英]Java - fill list values with other list as function parameter using recursion
在我的Java函数中,我想使用列表作为参数,例如列表1 =(a,b,c)。 每个值都是另一个列表中的值时,列表2 =(1、2、3)。 现在,我想用所有可能的组合来调用我的函数来填充它。
像a = 1,b = 1,c = 1; a = 1,b = 2,c = 1; a = 1,b = 3,c = 1,依此类推。
问题是每次调用该函数时,列表长度都会改变。
通常我会使用两个for循环,或者使用带有递归的简单函数。 但是我不知道如何精确地处理不断变化的列表长度。 也许我的问题是广泛的,我的问题是不知道如何更改列表中的一个值,直到调用每种组合。
我想象中的函数看起来像这样:(我知道带有for循环的函数将不起作用,我必须使用迭代器)
List 1 = (a,b,c);
List 2 = (1,2,3);
list1.set(a, 1);
list1.set(b, 1);
list1.set(c, 1);
functionFillList(List list1){
for(Element e : list1){
//do something
//in some cases add elements to list2
}
//change one value of list1
functionFillList(list1);
//if every combination was called -> end function
}
使用循环更改列表数据将引发并发修改错误,使用Iterator
而不是循环更改列表数据。 迭代器允许修改数据。
void functionFillList(List list1){
Iterator<String> iter = list1.iterator();
while(iter.hasNext()){
//do something
}
//change one value of list1
functionFillList(list1);
//if every combination was called -> end function
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.