Javaでint / Stringの配列を反転する方法
このチュートリアルでは、Java で配列の要素を反転する方法を見ていきます。
配列を逆にするのはとても簡単に思えるかもしれません。このように見えるのは、同じサイズのテーブルを作成し、元のテーブルを端から端まで調べて、新しいテーブルを埋めるだけで、それだけです。元の配列の逆順の要素を持つ配列がありましたが、問題は、O(n)の複雑さが非常に大きい場合に多くのスペースを占有する追加の配列をここで使用したことです。ボードに 100 万個のアイテムが含まれていて、十分なスペースがないとします。問題は、多くのスペースを占有する追加のテーブルに頼らずに状況を逆転させることができるかどうかです。ここでの解決策の鍵は、一時バッファを使用せずに配列を反転するために何が必要かを理解することですが、変数を使用して値を格納することもできます。
オープンソースライブラリまたはjava.util.Arraysまたはjava.util.Collections.
に到達するまでアイテムを交換する手動の方法に戻ることもできます。中間点は、現在の値を毎回一時変数に格納して、次のように上書きされないようにします:
メソッドを簡単に使用できます ArrayUtils.reverse(int[] array)
>このメソッドはjava object collectionsでのみ機能するため、配列をjava.util.List をメソッド Arrays.asList() メソッドを呼び出し、メソッド Collections.reverse() メソッドを使用して List オブジェクトを配列に変換し、最後に toArray().
配列を逆にするのはとても簡単に思えるかもしれません。このように見えるのは、同じサイズのテーブルを作成し、元のテーブルを端から端まで調べて、新しいテーブルを埋めるだけで、それだけです。元の配列の逆順の要素を持つ配列がありましたが、問題は、O(n)の複雑さが非常に大きい場合に多くのスペースを占有する追加の配列をここで使用したことです。ボードに 100 万個のアイテムが含まれていて、十分なスペースがないとします。問題は、多くのスペースを占有する追加のテーブルに頼らずに状況を逆転させることができるかどうかです。ここでの解決策の鍵は、一時バッファを使用せずに配列を反転するために何が必要かを理解することですが、変数を使用して値を格納することもできます。
オープンソースライブラリまたはjava.util.Arraysまたはjava.util.Collections.
に到達するまでアイテムを交換する手動の方法に戻ることもできます。中間点は、現在の値を毎回一時変数に格納して、次のように上書きされないようにします:
public class reverse_Array {このコードをコンパイルして実行すると、次のようになります:
public static void main(String[] args) {
int[] array ={1, 2, 3, 4};
//配列の整数を表示
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
//配列要素を反転
for(int i = 0; i < array.length / 2; i++)
{
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
//転置配列の整数を表示
System.out.println("inverted array");
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
}
}
1なぜ途中で止まるのか?真ん中に到達すると、すべての値を反転し、配列の最後まで続けて各要素を2回反転すると、結果は同じになるためです.
2
3
4
array
4
3
2
1
ArraysUtils.reverse()
Commons langのJavaライブラリを使用して、java.lang APIには、文字列を操作するためのメソッド、数値メソッドなどのメソッドが含まれています。クリックして download java.lang そしてそれをプロジェクトにインポートします.メソッドを簡単に使用できます ArrayUtils.reverse(int[] array)
import java.util.Arrays;このコードは出力として次のようになります:
import org.apache.commons.lang3.ArrayUtils;
public class reverse_array_strings {
public static void main(String[] args) {
String[] string_array ={"a", "b", "c"};
//配列文字列を表示します
for(int i = 0; i < string_array.length; i++)
{
System.out.println(string_array[i]);
}
//array
ArrayUtils.reverse(string_array);
//転置配列の文字列を表示します
System.out.println("inverted array");
for(int i = 0; i < string_array.length; i++)
{
System.out.println(string_array[i]);
}
}
}
aほとんどの場合、 ライブラリは間違いを防いでくれ、編集者によってテストされているため、簡単に使用する方が高速で安全です.
b
c
array
c
b
a
>このメソッドはjava object collectionsでのみ機能するため、配列をjava.util.List をメソッド Arrays.asList() メソッドを呼び出し、メソッド Collections.reverse() メソッドを使用して List オブジェクトを配列に変換し、最後に toArray().
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class reverse_array_list {
public static void main(String[] args) {
Object[] string_objects ={"abc", 12, 54, 'c', 99};
//配列文字列を表示します
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}
//配列を List
List に変換します<オブジェクト>リスト= Arrays.asList(string_objects);
//配列内のオブジェクトを反転
Collections.reverse(list);
//リストから配列を取得
string_objects = list.toArray();
//転置配列の文字列を表示します
System.out.println("inverted array of objects");
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}
}
}
結果:
abc
12
54
c
99
反転オブジェクトの配列
99
c
54
12
abc
References:
Stackoverflow: Javaでint配列を逆にするにはどうすればいいですか?
Commons lang: Java.lang API
Javaで配列を逆にする方法は?
import java.util.Collections;
import java.util.List;
public class reverse_array_list {
public static void main(String[] args) {
Object[] string_objects ={"abc", 12, 54, 'c', 99};
//配列文字列を表示します
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}
//配列を List
List に変換します<オブジェクト>リスト= Arrays.asList(string_objects);
//配列内のオブジェクトを反転
Collections.reverse(list);
//リストから配列を取得
string_objects = list.toArray();
//転置配列の文字列を表示します
System.out.println("inverted array of objects");
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}
}
}
12
54
c
99
反転オブジェクトの配列
99
c
54
12
abc