是否有将复制一个数组(ArrayList不是)的一部分,并从中作出新阵列的方法?
Example:
[1,2,3,4,5]
你从它创建一个新的数组:
[1,2,3]
是否有任何一条线/方法,将做到这一点?
是否有将复制一个数组(ArrayList不是)的一部分,并从中作出新阵列的方法?
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
有一个在一个预先存在的方法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是存在的,通过这个可以完成许多其他的方法
阵列#copyOfRange的伎俩。
正如其他人所说,你可以使用Arrays.copyOfRange方法。 一个例子是:
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
现在, 部分将是:{“二”,“三”,“四”}