2016-07-27 6 views
1

swap()メソッドをコードに示すように使用して配列をソートするとします。配列を渡してソートする方法を知りたい。配列と現在のインデックスをJavaのメソッドに渡す方法

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; 
     }  
    } 
} 
+5

配列型のメソッドパラメータ、 'int [] ar'を宣言します。 –

+0

私はそれを次のように宣言しなければならないことを意味します:private static void swap(int []、int []){...} – Eid

+0

いいえ、配列の* third *パラメータを追加しました –

答えて

2

アレイは他のタイプと同じです。メソッドに配列を渡したい場合は、その型のパラメータを宣言します。

private static void swap(int[] ar, int i, int j) { ... } 
         ^This is a parameter of type int[]. 

なおijあなたは、配列内のインデックス、ない値でなければなりません渡す:

swap(ar, i, j); 

ので、要素をスワップ:

temp = ar[i]; 
ar[i] = ar[j]; 
ar[j] = temp; 
+0

ありがとうございます。それは有用だった。 – Eid

+0

@Eidまた、一時変数なしで2つの値を入れ替えることもできます: 'ar [i]^= ar [j]; ar [j]^= ar [i]; ar [i]^= ar [j]; '。あなたがパブで友達と一緒にいるときに伝えるのはすばらしい話です。しかし、私はそれをお勧めしません。 – bvdb

+0

興味深いですね。ありがとう – Eid

0

最も簡単な方法は次のようになり:

private static void swap(int[] ar, int i, int j) { 
    //Do work here 
} 
+0

申し訳ありませんが、忘れていた配列が1秒間配置されました。 –

関連する問題