配列を反転させるJavaの実装方法は何ですか?
Javaにおける配列の反転を実現する方法は次のとおりです。
- 新しい配列を使って:新しい配列を作成し、元の配列の最後から順に要素を新しい配列に格納し、最後に新しい配列を返します。
public static int[] reverseArray(int[] arr) {
int[] result = new int[arr.length];
int index = 0;
for (int i = arr.length - 1; i >= 0; i--) {
result[index] = arr[i];
index++;
}
return result;
}
- 両端から入れ替え:配列の始点と終点の2つのポインタを用意し、ポインタの位置の要素を入れ替える。始点のポインタは後ろに1つ、終点のポインタは前に1つ移動させ、始点のポインタが終点のポインタ以上になるまで繰り返す。
public static void reverseArray(int[] arr) {
int start = 0;
int end = arr.length - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
- コレクションのreverse()を使用して配列をリストに変換し、リストをreverse()メソッドで逆順にして、リストを配列に戻します。
import java.util.Arrays;
import java.util.Collections;
public static void reverseArray(int[] arr) {
Integer[] temp = new Integer[arr.length];
for (int i = 0; i < arr.length; i++) {
temp[i] = arr[i];
}
Collections.reverse(Arrays.asList(temp));
for (int i = 0; i < arr.length; i++) {
arr[i] = temp[i];
}
}
配列を反転させる一般的な3つの方法であり、求められる内容に応じて適切な方法を選択できる。