logo

Java で配列を反転する

配列が与えられた場合、そのタスクは Java で指定された配列を反転することです。

例:



Input : 1, 2, 3, 4, 5 Output :5, 4, 3, 2, 1 Input : 10, 20, 30, 40 Output : 40, 30, 20, 10>

配列の基本については、「配列のデータ構造」を参照してください。

アプローチ

Java で配列を反転する方法は数多くあります。これらは:

  • Temp 配列の使用
  • スワッピングの使用
  • Collections.reverse() メソッドの使用
  • StringBuilder.append() メソッドの使用

1.Temp配列の使用

最初の方法 以下のとおりであります:



  • 配列のサイズと配列の要素を入力します。
  • 配列 (arr など) と配列のサイズ (n など) をパラメータとする関数 reverse を考えてみましょう。
  • 関数内で、新しい配列 (最初の配列 arr の配列サイズを使用) が初期化されます。配列 arr[] は最初の要素から反復され、配列 arr[] の各要素は新しい配列に後ろから配置されます。つまり、新しい配列は最後の要素から反復されます。
  • このようにして、配列 arr[] のすべての要素が新しい配列に逆に配置されます。
  • さらに、新しい配列を最初から反復処理して、配列の要素を出力することができます。

ジャワ






// Basic Java program that reverses an array> > 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 b[j - 1] = a[i]; j = j - 1; } // printing the reversed array System.out.println('Reversed array is: '); for (int k = 0; 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. スワッピングの使用

2番目の方法 は、配列の入力と出力に同様のコードを使用します。ただし、上記の方法のように新しい配列を作成するわけではありません。代わりに、元の配列自体を反転します。このメソッドでは、配列の要素を交換します。最初の要素が最後の要素と交換されます。 2 番目の要素は、最後から 1 つ前の要素と交換され、以下同様に続きます。
たとえば、配列 [1, 2, 3, …., n-2, n-1, n] を考えてみましょう。 1 を n、2 を n-1、3 を n-2 とさらに交換します。

ジャワ




// Java Program that reverses array> // in less number of swaps> > public> class> arrayReverse {> > >// function swaps the array's first element with last> >// element, second element with last second element and> >// so on> >static> void> reverse(>int> a[],>int> n)> >{> >int> i, k, t;> >for> (i =>0>; i 2; i++) { t = a[i]; a[i] = a[n - i - 1]; a[n - i - 1] = t; } // printing the reversed array System.out.println('Reversed array is: '); for (k = 0; k System.out.println(a[k]); } } public static void main(String[] args) { int[] arr = { 10, 20, 30, 40, 50 }; reverse(arr, arr.length); } }>

>

>

jsonファイルを読む
出力

Reversed array is: 50 40 30 20 10>

3. Collections.reverse() メソッドの使用

3番目の方法 関数を使うことです java.util.Collections.reverse(リストリスト) 方法。このメソッドは、指定されたリスト内の要素を反転します。したがって、最初に次を使用して配列をリストに変換します。 java.util.Arrays.asList(配列) そしてリストを逆にします。

ジャワ




// Reversing an array using Java collections> import> java.util.*;> > public> class> reversingArray {> > >// function reverses the elements of the array> >static> void> reverse(Integer a[])> >{> >Collections.reverse(Arrays.asList(a));> >System.out.println(Arrays.asList(a));> >}> > >public> static> void> main(String[] args)> >{> >Integer [] arr = {>10>,>20>,>30>,>40>,>50>};> >reverse(arr);> >}> }>

>

>

出力

[50, 40, 30, 20, 10]>

4. StringBuilder.append() メソッドの使用

として 4番目の方法 , String 配列を操作している場合は、StringBuilder を使用して、配列の長さから減分する for ループを各配列要素に追加し、StringBuilder を文字列に変換して、配列に分割し直すことができます。

ジャワ




// Java Program for Reversing an array using StringBuilder> > import> java.util.Arrays;> > class> GFG {> >public> static> void> main (String[] args) {> >String[] arr = {>'Hello'>,>'World'>};> >StringBuilder reversed =>new> StringBuilder();> > >for> (>int> i = arr.length; i>>>0>; i--) {> >reversed.append(arr[i ->1>]).append(>' '>);> >};> > >String[] reversedArray = reversed.toString().split(>' '>);> > >System.out.println(Arrays.toString(reversedArray));> >}> }>

>

>

出力

[World, Hello]>