ホームページ  >  記事  >  Java  >  Javaで配列を反転するにはどのような方法がありますか?

Javaで配列を反転するにはどのような方法がありますか?

WBOY
WBOY転載
2023-05-23 21:58:341022ブラウズ

1. 質問

入力 : 1、2、3、4、5 出力 :5、4、3、2、1

入力: 10, 20, 30, 40 出力 : 40, 30, 20, 10

2. 方法

方法 1: 一時配列を使用する

  1. 配列のサイズと配列の要素を入力します。

  2. #配列 (arr など) と配列のサイズ (n など) のパラメーターを受け取る関数 reverse を考えてみましょう。

  3. In 関数内で、新しい配列 (最初の配列 arr の配列サイズ) が初期化されます。

  4. 配列 arr[] は最初の要素から反復を開始し、配列 arr[] の各要素は後ろから新しい配列に入れられます。つまり、新しい配列は次から反復を開始します。最後の要素。

  5. これにより、配列 arr[] のすべての要素が逆の順序で新しい配列に配置されます。

public class reverseArray {
    // function that reverses array and stores it 
    // in another array
    static void reverse(int a[], int n)
    {
        int[] b = new int[n];
        int j = n;
        for (int i = 0; i < n; i++) {
            b[j - 1] = a[i];
            j = j - 1;
        }
        // printing the reversed array
        System.out.println("Reversed array is: \n");
        for (int k = 0; k < n; k++) {
            System.out.println(b[k]);
        }
    }
    public static void main(String[] args)
    {
        int [] arr = {10, 20, 30, 40, 50};
        reverse(arr, arr.length);
    }
}

結果は次のとおりです。

Reversed array is: 
50
40
30
20
10

方法 2:exchange

を使用して配列の要素を交換します。最初の要素が最後の要素と交換されます。 2 番目の要素は最後の要素と交換され、以下同様に続きます。たとえば、要素 [1、2、3、...、n-2、n-1、n] を含む配列があるとします。 1 と n、2 と n-1、3 と n-2 などを 1 つずつ入れ替えます。

public class Test {
    public static void main(String[] args) {
        int [] arr = {10, 20, 30, 40, 50};
        reverse(arr,arr.length);
    }
    static void reverse(int[] a,int n) {
        int i, k, t;
        for (i = 0; i < n / 2; i++) {
            t = a[i];
            a[i] = a[n - i - 1];
            a[n - i - 1] = t;
        }
        System.out.println("Reversed array is: \n");
        for (k = 0; k < n; k++) {
            System.out.println(a[k]);
        }
    }
}

結果は次のとおりです:

Reversed array is: 
50
40
30
20
10

方法 3: Collections.reverse() メソッドを使用します

メソッド java.util.Collections.reverse(List list) を反転します。与えられたリスト ..配列をリストに変換してから Collections.reverse(list) を呼び出すことにより、配列を逆にします。

public class Test {
    public static void main(String[] args) {
        Integer [] arr = {10, 20, 30, 40, 50};
        reverse(arr);
    }
    static void reverse(Integer[] a) {
        Collections.reverse(Arrays.asList(a));
        System.out.println(Arrays.asList(a));
    }
}

結果は次のとおりです。

[50, 40, 30, 20, 10]

方法 4: StringBuilder.append() メソッドを使用する

String 配列を使用している場合は、StringBuilder と for を使用できます。各配列の for ループが要素に付加され、配列の長さから開始して減分し、StringBuilder を文字列に変換してから配列に分割します。

public class Test {
    public static void main(String[] args) {
        String[] arr = {"Hello", "World"};
        StringBuilder reversed = new StringBuilder();
        for (int i = arr.length-1; i >= 0; i--) {
            reversed.append(arr[i]).append(" ");
        };
        String[] reversedArray = reversed.toString().split(" ");
        System.out.println(Arrays.toString(reversedArray));
    }
}

結果は次のとおりです:

[World, Hello]

以上がJavaで配列を反転するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。