函数问题意味着交换arrray索引(Java)

时间:2015-05-26 03:51:32

标签: java arrays swap indices

我写了一个函数,它应该交换到整数数组的索引 我的问题是,当我尝试实现我的交换功能时,

我收到此错误:

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

我不明白为什么会出现这个错误。我很感激有关如何理解和解决此错误的任何提示。

3 个答案:

答案 0 :(得分:0)

称之为

swap(A, 1, 2);

swap(A, A[1], A[2]);

目前,您将数组值传递为ij,而不是索引。

答案 1 :(得分:0)

也许您想要交换指定索引的值,如下所示:

swap(A, 1, 2);

答案 2 :(得分:0)

问题是你已经创建了一个大小的数组,假设它的大小是' n'。现在,当您要访问n或n + 1维时,您将收到此错误。

您发布的代码不足以查明错误,但我觉得对于数组大小为n,您并不认为索引从0开始并以n-1结束。