java如何截取数组
截取数组的方法
在Java中,可以通过多种方式截取数组的一部分。以下是几种常见的方法:
使用System.arraycopy方法
System.arraycopy是Java提供的一个高效数组拷贝方法,可以用于截取数组的一部分。

int[] originalArray = {1, 2, 3, 4, 5};
int[] subArray = new int[3]; // 截取长度为3的子数组
System.arraycopy(originalArray, 1, subArray, 0, 3); // 从索引1开始截取3个元素
// subArray结果为 {2, 3, 4}
使用Arrays.copyOfRange方法
Arrays.copyOfRange方法可以直接截取数组的指定范围,更加简洁。

int[] originalArray = {1, 2, 3, 4, 5};
int[] subArray = Arrays.copyOfRange(originalArray, 1, 4); // 截取索引1到3的元素
// subArray结果为 {2, 3, 4}
手动循环复制
通过循环手动复制数组的一部分,适用于需要更灵活控制的情况。
int[] originalArray = {1, 2, 3, 4, 5};
int startIndex = 1;
int endIndex = 4;
int[] subArray = new int[endIndex - startIndex];
for (int i = startIndex; i < endIndex; i++) {
subArray[i - startIndex] = originalArray[i];
}
// subArray结果为 {2, 3, 4}
使用Stream API(Java 8及以上)
通过Stream API可以更灵活地截取数组的一部分。
int[] originalArray = {1, 2, 3, 4, 5};
int[] subArray = Arrays.stream(originalArray, 1, 4).toArray(); // 截取索引1到3的元素
// subArray结果为 {2, 3, 4}
注意事项
- 截取数组时需确保起始索引和结束索引在数组范围内,否则会抛出
ArrayIndexOutOfBoundsException。 - 使用
Arrays.copyOfRange时,结束索引是开区间(不包含结束索引对应的元素)。 - 对于大型数组,
System.arraycopy和Arrays.copyOfRange性能较高,推荐优先使用。
以上方法可以根据实际需求选择最适合的方式截取数组。






