[英]Java copy section of array
有没有一种方法可以复制数组的一部分(不是arraylist)并从中创建一个新数组?
Example:
[1,2,3,4,5]
并从中创建一个新数组:
[1,2,3]
有没有一行/方法可以做到这一点?
请参阅方法Arrays.copyOfRange
这是一个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);
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代表复制应该从哪里开始的源数组的索引。 和
size代表复制操作的数量。 你可以根据自己的需要改变。
copyOfRange of Arrays是有很多其他方法可以实现的
数组#copyOfRange可以解决问题。
正如其他人所说,你可以使用Arrays.copyOfRange方法。 一个例子是:
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
现在部分将是: {“two”,“three”,“four” }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.