我有以下代碼:自動裝盒不工作?
static boolean nextPerm(int[] A) {
int N = A.length;
int k = N - 1;
int[] S = { };
while (k >= 0) {
if (S.length > 0 && containsLarger(S, A[k])) {
int v = firstLargest(S, A[k]);
//int vIndex = Arrays.asList(S).indexOf(v);
List<Integer> test = Arrays.asList(S); // // ERRORS HERE. Before error, S is { 2 }
System.out.println(test.get(0));
int vIndex = test.indexOf(S);
S[vIndex] = A[k];
A[k] = v;
System.arraycopy(S, 0, A, k + 1, N - k);
return true;
} else {
S = addIntAscend(S, A[k]);
k -= 1;
}
}
return false;
}
錯誤之前,S是一個int數組{2}。當我將TEST設置爲Arrays.asList(S)時發生錯誤:
Perms.java:44: error: incompatible types
List<Integer> test = Arrays.asList(S);
^
required: List<Integer>
found: List<int[]>
1 error
爲什麼會發生這種情況?我認爲原始圖像是自動複製的?
但是看看下面這個例子。 http://stackoverflow.com/a/6171675/2288418他將一個int數組傳遞給asList,並能夠獲取它的索引。編輯:沒關係,他的例子LOL中有一個錯誤。 –