【发布时间】:2014-12-17 05:28:09
【问题描述】:
这是一个方法,它应该简单地创建一个新的 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);
}
除非这不起作用。有什么建议或提示吗?
【问题讨论】:
-
那里有什么错误?
-
“不起作用”以什么方式?描述您寻求帮助的具体问题
-
这个递归有基本情况吗?还是它只是永远自称?
-
正要说同样的话。没有基本情况,看不到这会终止。
标签: java list recursion arraylist