在java中将数组拆分为两部分,不带for循环

2022-09-01 01:43:10

我有一个大小为300000的数组,我希望它将其分成2个相等的部分。这里有什么方法可以用来实现这一目标吗?

它会比 for-loop 操作更快,还是不会对性能造成任何影响?


答案 1

您可以使用 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);

答案 2

copyOfRange

这可以执行所需的操作,而无需在返回新数组时创建新数组。

int[] original = new int[300000];
int[] firstHalf = Arrays.copyOfRange(original, 0, original.length/2);