gpt4 book ai didi

java - 通过 recursion-java 添加另一个 arraylist 的元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:03 25 4
gpt4 key购买 nike

这里有一个方法应该只是创建一个新的 ArrayList 复制参数 ArrayList arrlist 的所有元素,我认为我做对了。

public ArrayList<T> copy (ArrayList<T> arrlist) {
ArrayList<T> um=new ArrayList<T>();
for (int i=0;i<arrlist.size();i++)
um.add(arrlist.get(i));
return um;

但是,我想只使用没有循环的递归来编写这个完全相同的方法。这是我写的。复制方法使用递归辅助方法。

public ArrayList<T> copy(ArrayList<T> arrlist) {
return copy(arrlist,0);
}

private ArrayList<T> copy(ArrayList<T> arrlist, int n) {
ArrayList<T> um=new ArrayList<T>();
if (n<arrlist.size())
um.add(list.get(n));
return copy(list,n+1);
}

除此之外不起作用。有什么建议或提示吗?

最佳答案

问题是您在每次递归中都创建了一个新的 ArrayList。而且您不会将其退回任何地方。

你应该做的是,在辅助方法中,也将目标 ArrayList 作为参数传递给它,而不是添加一个新的。

(当然,完成后不要忘记返回)。

关于java - 通过 recursion-java 添加另一个 arraylist 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26496016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com