数组的Java复制部分

数组的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表示复制操作的数量

是否有一种方法可以复制数组的一部分(而不是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表示复制操作的数量。您可以根据需要进行更改

有数组范围的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开始