[英]java print list of items using recursion seems inefficient
我正在做一個非常基本的任務。 “使用遞歸來打印列表的值”,我想出了下面的代碼,但是當它每次通過列表時都會通過列表,所以我想知道是否有更好的方法。 有什么建議嗎?
public class RecurList {
public static void main(String[] args) {
int[] list = {8,7,9,10,56};
int ix = list.length;
int sumNow = ShowNext(ix, 0, list); // initial call -> sum is 0
System.out.println("Recursion total is " + sumNow);
}
public static int ShowNext(int inx, int sum, int[] lst) {
if (inx == 0) return sum;
int item = lst[inx - 1];
sum += item;
System.out.println("inx:" + inx + " item:" + item + " sum:" + sum);
return ShowNext(inx - 1, sum, lst);
}
}
請閱讀並遵守Java命名約定 。 用小寫字母開頭的方法名稱。
“使用遞歸來打印列表的值”
由於您使用的是數組而不是列表,因此分配失敗。
每當它自稱它會通過列表時,我想知道是否有更好的方法。
有兩個解決方案。
@Prune建議使用更故意的方法:將列表(在您的情況下為數組)縮短一個元素。 實用程序類Arrays
具有執行此操作的方法。
較小的“遞歸”樣式是使數組成為類成員,並將其從方法參數列表中刪除:
public class RecurList {
static int[] list;
public static void main(String[] args) {
list = {8,7,9,10,56};
int ix = list.length;
int sumNow = ShowNext(ix, 0); // initial call -> sum is 0
System.out.println("Recursion total is " + sumNow);
}
public static int ShowNext(int inx, int sum) {
if (inx == 0) return sum;
int item = lst[inx - 1];
sum += item;
System.out.println("inx:" + inx + " item:" + item + " sum:" + sum);
return ShowNext(inx - 1, sum);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.