繁体   English   中英

Java-使用递归将其他列表作为函数参数填充列表值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM