这是一段简单的代码。但是结果仍然是错误的,我只是不明白为什么-有人吗?
使用数组int [] a = {3,1,0,2,5}并用System.out.println(Arrays.toString(s.swap(a,a [0],a [1] )));结果是[3,2,0,1,5]。这是怎么回事我期望[1、3、0、2、5]。 -谢谢!
import java.util.Arrays;
public class MyClass {
public int[] swap(int[] array, int a, int b){
int temp = array[a];
array[a] = array[b];
array[b] = temp;
return array;
}
}
此行正在调用索引为A [0] = 3和A [1] = 1的交换,因此将A [3]与A [1]交换。
System.out.println(Arrays.toString(s.swap(a, a[0], a[1])));
第二和第三个参数应该是要交换的数组的索引。
int[] a = {3,1,0,2,5}
to swap first and second index you should call swap(a, 0, 1)
swap(a, 0, 1)
Then a becomes{1,3,0,2,5}
temp变为array [a [0]],array [3]-> 2
[array [a [0]] array [3]变成array [a [1]]变成array [1]:-> 1
array [1]变为2
3 2 0 1 5
该函数需要索引,但是您正在传递值!只需考虑System.out.println(Arrays.toString(s.swap(a, 0, 1)));
而不是System.out.println(Arrays.toString(s.swap(a, a[0], a[1])));