在java中将数组拆分为两部分,不带for循环
我有一个大小为300000的数组,我希望它将其分成2个相等的部分。这里有什么方法可以用来实现这一目标吗?
它会比 for-loop 操作更快,还是不会对性能造成任何影响?
我有一个大小为300000的数组,我希望它将其分成2个相等的部分。这里有什么方法可以用来实现这一目标吗?
它会比 for-loop 操作更快,还是不会对性能造成任何影响?
您可以使用 System.arraycopy()
。
int[] source = new int[1000];
int[] part1 = new int[500];
int[] part2 = new int[500];
// (src , src-offset , dest , offset, count)
System.arraycopy(source, 0 , part1, 0 , part1.length);
System.arraycopy(source, part1.length, part2, 0 , part2.length);
这可以执行所需的操作,而无需在返回新数组时创建新数组。
int[] original = new int[300000];
int[] firstHalf = Arrays.copyOfRange(original, 0, original.length/2);