配列(arraylistではない)のセクションをコピーし、そこから新しい配列を作成するメソッドはありますか?
Example:
[1,2,3,4,5]
それから新しい配列を作成します:
[1,2,3]
これを行う1つの行/メソッドはありますか?
Java 1.4互換の1.5ライナー:
int[] array = { 1, 2, 3, 4, 5 };
int size = 3;
int[] part = new int[size];
System.arraycopy(array, 0, part, 0, size);
これは1行で行うことができますが、結果への参照はありません。
ワンライナーを作成するには、これをメソッドにリファクタリングできます。
private static int[] partArray(int[] array, int size) {
int[] part = new int[size];
System.arraycopy(array, 0, part, 0, size);
return part;
}
次に、次のように呼び出します。
int[] part = partArray(array, 3);
メソッドを参照してください Arrays.copyOfRange
_Java.util.Arrays
_:newArray = Arrays.copyOfRange(myArray, startindex, endindex)
には既存のメソッドがあります。または、独自のメソッドを簡単に記述できます。
_public static array[] copyOfRange(array[] myarray, int from, int to) {
array[] newarray = new array[to - from];
for (int i = 0 ; i < to - from ; i++) newarray[i] = myarray[i + from];
return newarray;
}
_
int [] myArray = [1,2,3,4,5];
int [] holder = new int[size];
System.arraycopy(myArray,0,holder,size);
0は、コピーを開始するソース配列のインデックスを表します。そして
サイズはコピー操作の数を表します。必要に応じて変更できること。
配列のcopyOfRangeがあり、これを実現する他の多くの方法があります
Arrays#copyOfRange トリックを行います。
他の人が述べたように、Arrays.copyOfRangeメソッドを使用できます。例は:
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
これでpartは次のようになります:{"two"、 "three"、 "four"}