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

标签 java list recursion

在我的 java 函数中,我想使用列表作为参数,例如列表 1 = (a,b,c)。 其中每个值都是另一个列表中的值,List 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
    }

关于Java - 使用递归用其他列表作为函数参数填充列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573883/

相关文章:

list - 检查列表在 Haskell 中是否平坦

javascript - 使用递归生成给定长度和基数的数字字符串

java - 如何通过JAXB xml解析获取特定元素?

java - OpenCV 和 Android : drawContrours from a ROI at correct position in image

java - 无法在 Eclipse ide 中打开 SDK 管理器

Java 继承 : Restrict List to Subclass Objects

c - 递归二进制搜索函数不会为数组中不存在的值返回 -1

java - 对 Java protocol buffers 对象做一些小改动

for循环列表中的python dict

c# - 将随机生成的颜色分配给值