数组的Java复制部分
是否有一种方法可以复制数组的一部分(而不是arraylist)并从中生成新数组数组的Java复制部分,java,arrays,copy,java1.4,Java,Arrays,Copy,Java1.4,是否有一种方法可以复制数组的一部分(而不是arraylist)并从中生成新数组 Example: [1,2,3,4,5] 然后从中创建一个新数组: [1,2,3] 有任何一行/方法可以做到这一点吗?请参见方法 int [] myArray = [1,2,3,4,5]; int [] holder = new int[size]; System.arraycopy(myArray,0,holder,size); 其中0表示源数组的索引,复制应从该索引开始。 及 size表示复制操作的数量
Example:
[1,2,3,4,5]
然后从中创建一个新数组:
[1,2,3]
有任何一行/方法可以做到这一点吗?请参见方法
int [] myArray = [1,2,3,4,5];
int [] holder = new int[size];
System.arraycopy(myArray,0,holder,size);
其中0表示源数组的索引,复制应从该索引开始。
及
size表示复制操作的数量。您可以根据需要进行更改
有数组范围的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;
}
公共静态数组[]copyOfRange(数组[]myarray,int-from,int-to){
array[]newarray=newarray[to-from];
对于(inti=0;i
以下是一个与java 1.4兼容的1.5-liner:
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方法。例如:
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
现在部分将是:{“二”,“三”,“四”}缺少一个参数,因为它需要另一个int作为destinationPosition。有一个错误,部分是
{“三”,“四”,“五”}
,因为数组索引从0开始