数组的 Java 复制部分

2022-09-02 00:04:28

有没有一种方法可以复制数组的一部分(不是数组列表)并从中创建新数组?

Example:
[1,2,3,4,5]

然后从中创建一个新数组:

[1,2,3]

有没有一行/方法可以做到这一点?


答案 1

请参阅方法 Arrays.copyOfRange


答案 2

这是一个java 1.4兼容的1.5衬里:

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);