【问题标题】:How to add an element to arrayList when calling the method at the same time?同时调用方法时如何向arrayList添加元素?
【发布时间】:2017-11-16 05:55:30
【问题描述】:

我正在做一个递归程序,我想连续调用一个方法2次,看起来像这样:

print(ArrayList<Integer> current + arr[0], Arrays.copyOfRange(arr, 1, arr.length) );
print(ArrayList<Integer> current, Arrays.copyOfRange(arr, 1, arr.length));

但是不可能像这样向 ArrayList 添加值。但是,我也不能在外面使用 current.add() ,因为它会打乱我的第二次通话。 那么有没有办法在调用方法时向arrayList添加一个值,还是我必须考虑另一种方式来编写我的代码?

【问题讨论】:

  • 不能先添加再删除吗?或者使用附加元素创建一个新列表?一些上下文会很好。
  • 为什么你甚至想这样做?

标签: java arrays recursion


【解决方案1】:

你可以像下面这样重载你的打印方法:

public void print(ArrayList<Integer> current, int i, int[] arr ) {
    //print whatever you want
    //then add using current.add(i)
    current.add(i)
}

然后像这样在第一时间调用你重载的print()方法:

print(current, arr[0], arr);

【讨论】:

    【解决方案2】:

    您可以使用以下代码实现它

    print(new ArrayList<Integer>(current) {{ add(arr[0]); }},
          Arrays.copyOfRange(arr, 1, arr.length) );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多