我写了一个函数,它应该交换到整数数组的索引 我的问题是,当我尝试实现我的交换功能时,
我收到此错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at pa5.swap(pa5.java:24)
at pa5.nextPermutation(pa5.java:66)
at pa5.main(pa5.java:12)
以下是代码
nextPermutation(A); //line 12, call to function in main()
static void swap(int[] Q, int i, int j){
int temp = Q[i]; //line 24
Q[i] = Q[j];
Q[j] = temp;
}
swap(A, pivot, successor); //line 66 inside of nextPermutation function
我不明白为什么会出现这个错误。我很感激有关如何理解和解决此错误的任何提示。
答案 0 :(得分:0)
称之为
swap(A, 1, 2);
不
swap(A, A[1], A[2]);
目前,您将数组值传递为i
和j
,而不是索引。
答案 1 :(得分:0)
也许您想要交换指定索引的值,如下所示:
swap(A, 1, 2);
答案 2 :(得分:0)
问题是你已经创建了一个大小的数组,假设它的大小是' n'。现在,当您要访问n或n + 1维时,您将收到此错误。
您发布的代码不足以查明错误,但我觉得对于数组大小为n,您并不认为索引从0开始并以n-1结束。