[英]How to store recursive function value in array JAVA
我想將數據變量(String[])存儲到ArrayList中的變量結果中,然后遞歸function的最終結果就是ArrayList結果。 在這種情況下返回 [[ani,budi],[ani,cici],[budi,cici]]。 任何人都可以幫助我嗎?
static void combinationUtil(String arr[], String data[], int start,
int end, int index, int r, ArrayList<String[]> results)
{
if (index == r){
results.add(data);
System.out.println(Arrays.toString(data));
return;
}
for (int i=start; i<=end && end-i+1 >= r-index; i++){
data[index] = arr[i];
combinationUtil(arr, data, i+1, end, index+1, r, results);
}
}
public static void main (String[] args) {
String arr[] = {"ani", "budi", "cici"};
int r = 2;
int n = arr.length;
String data[] = new String[r];
ArrayList<String[]> results = new ArrayList<String[]>();
combinationUtil(arr, data, 0, n-1, 0, r, results);
}
更新將數組添加到列表的行並進行復制,因為保存的數組在其他迭代中正在更改
results.add(Arrays.copyOf(data, data.length));
, 變成這樣:
static void combinationUtil(String arr[], String data[], int start, int end, int index, int r,
ArrayList<String[]> results) {
if (index == r) {
results.add(Arrays.copyOf(data, data.length));
return;
}
for (int i = start; i <= end; i++) {
data[index] = arr[i];
combinationUtil(arr, data, i + 1, end, index + 1, r, results);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.