如何从另一个数组创建子数组?是否有一种方法可以从第一个数组获取索引,例如:
methodName(object array, int start, int end)
我不想遍历循环并使我的程序受苦。
我不断收到错误:
找不到符号方法copyOfRange(int [],int,int)
这是我的代码:
import java.util.*;
public class testing
{
public static void main(String [] arg)
{
int[] src = new int[] {1, 2, 3, 4, 5};
int b1[] = Arrays.copyOfRange(src, 0, 2);
}
}
Arrays.copyOfRange(..)
是在Java 1.6中添加的。因此,也许您没有最新版本。如果无法升级,请查看System.arraycopy(..)
使用java.util.Arrays类中的copyOfRange方法:
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
更多详细信息:
是,它称为System.arraycopy(Object, int, Object, int, int)。
尽管它仍然会在某个地方执行循环,除非可以通过JIT将其优化为REP STOSW
之类的东西(在这种情况下,循环位于CPU内部)。>>
int[] src = new int[] {1, 2, 3, 4, 5};
int[] dst = new int[3];
System.arraycopy(src, 1, dst, 0, 3); // Copies 2, 3, 4 into dst
使用Apache ArrayUtils可从this link下载,您可以轻松使用该方法
JDK> = 1.8
int newArrayLength = 30;
int[] newArray = new int[newArrayLength];
System.arrayCopy(oldArray, 0, newArray, 0, newArray.length);
代码是正确的,所以我猜您正在使用较旧的JDK。该方法的javadoc说它从1.6开始就已经存在。在命令行中输入:
我正在使用1.6版之前的Java,请改用System.arraycopy()
。或升级您的环境。