【发布时间】:2016-12-02 00:59:32
【问题描述】:
我想使用 swap() 方法对数组进行排序,如代码所示。我想知道如何传递数组并对其进行排序。
public class Test {
public static void main(String[] args) {
int [] ar = {9, 4, 5, 3, 1, 8, 4, 2, 0};
System.out.println(Arrays.toString(ar));
for (int i = 0; i<ar.length-1; i++){
for (int j = i+1; j<ar.length; j++){
swap(ar[i], ar[j]);
}
}
System.out.println(Arrays.toString(ar));
}
private static void swap(int i, int j) {
int temp;
if(i>j){
temp = j;
j = i;
i= temp;
}
}
}
【问题讨论】:
-
你声明了一个数组类型的方法参数:
int[] ar. -
你的意思是我必须像这样声明它:private static void swap(int [], int []){...}
-
不,你为数组添加一个第三个参数
-
如果要通过引用传递变量,则不必对变量进行特殊处理。这与 C/C++ 不同,您只需按原样传递变量。阅读:Is java pass by value or by reference
-
我不知道这是否是有意的,但我相信您的循环不会遍历整个数组。应该是
i<ar.length;,除非它是故意的。
标签: java arrays sorting parameter-passing