有沒有一種方法可以複製數組的一部分(而不是數組列表)並從中創建一個新數組?數組的Java複製部分
Example:
[1,2,3,4,5]
,你從它創建一個新的數組:
[1,2,3]
是否有任何一條線/方法,將做到這一點?
有沒有一種方法可以複製數組的一部分(而不是數組列表)並從中創建一個新數組?數組的Java複製部分
Example:
[1,2,3,4,5]
,你從它創建一個新的數組:
[1,2,3]
是否有任何一條線/方法,將做到這一點?
這裏是一個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);
你可以在一行中做到這一點,但你就不必在參考結果。
爲了讓一個班輪,你可以重構爲一個方法是:
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的伎倆的方法。
int [] myArray = [1,2,3,4,5];
int [] holder = new int[size];
System.arraycopy(myArray,0,holder,size);
其中0代表從複製開始的源數組的索引。 和
大小代表複製操作的數量。你可以根據你的需要改變。
陣列的copyOfRange是有 並且通過該可以完成此
+1您的評論。 – Lion
你缺少一個參數,它需要另一個int爲destinationPosition。 –
許多其他方式有一個在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;
}
正如其他人所說,你可以使用Arrays.copyOfRange方法。一個例子是:
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
現在部分將是:{ 「二」, 「三」, 「四有」}
的可能的複製[只獲取Java中的數組的一部分嗎?] (http://stackoverflow.com/questions/11001720/get-only-part-of-an-array-in-java) – 32cupo