Java 在数组中交换两个布尔值
我有一个布尔值数组。 现在我需要将位置1中的项目与位置2中的项目交换 我用这个空Java 在数组中交换两个布尔值,java,arrays,swap,Java,Arrays,Swap,我有一个布尔值数组。 现在我需要将位置1中的项目与位置2中的项目交换 我用这个空 public static void swap(boolean x, boolean z){ writeln("swapping"); boolean temp = x; x=z; z=temp; } 及 但它不起作用。只是不要交换。 有什么想法吗?传递数组和2个索引 public static void swap(boolean[] arr, int index1, int index2
public static void swap(boolean x, boolean z){
writeln("swapping");
boolean temp = x;
x=z;
z=temp;
}
及
但它不起作用。只是不要交换。
有什么想法吗?传递数组和2个索引
public static void swap(boolean[] arr, int index1, int index2){
writeln("swapping");
boolean temp = arr[index1];
arr[index1]=arr[index2];
arr[index2]=temp;
}
是的,您需要执行以下操作:
public static void swap(boolean[] arr, int x, int z){
writeln("swapping");
boolean temp = arr[x];
arr[x]=arr[z];
arr[z]=temp;
}
因为当您发送position[a]
和position[b]
时,java会将它们的值复制到一个新参数中,因此当您离开swap
函数时,变量没有做任何更改
要了解更多信息,可以阅读java中的passbyvalue和passbyref
调用方法或构造函数时
实际参数表达式初始化新创建的参数
每个声明类型的变量,在执行
方法或构造函数。中显示的标识符
DeclaratorId可以在方法体中用作简单名称或
构造函数引用形式参数
您正在传递简单类型,并且您不能更改它们的值。 试一试
由于Java只按值传递,因此可以通过以下方式交换数组中的元素:
public static void swap(boolean[] a, int index1, int index2) {
boolean tmp = a[index1];
a[index1] = a[index2];
a[index2] = tmp;
}
你可以称之为:
swap(position, a, moves[b]);
这里的参数是通过值而不是引用传递的什么不起作用?解释。。。你得到的意外结果是什么?你们给出的参数是什么?Java中并没有使用指针来访问函数上的变量,可能的答案是放置全局变量的位置
public static void swap(boolean[] a, int index1, int index2) {
boolean tmp = a[index1];
a[index1] = a[index2];
a[index2] = tmp;
}
swap(position, a, moves[b]);