如何截取数组java
截取数组的方法
在Java中,截取数组可以通过多种方式实现,以下是一些常见的方法:
使用Arrays.copyOfRange()方法
Arrays.copyOfRange()是Java提供的一个便捷方法,用于截取数组的一部分。该方法需要传入原始数组、起始索引和结束索引(不包括结束索引本身)。

import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] originalArray = {1, 2, 3, 4, 5, 6};
int[] subArray = Arrays.copyOfRange(originalArray, 1, 4);
System.out.println(Arrays.toString(subArray)); // 输出: [2, 3, 4]
}
}
手动复制数组
如果需要更灵活的控制,可以手动创建一个新数组,并通过循环复制原数组的指定部分。

public class Main {
public static void main(String[] args) {
int[] originalArray = {1, 2, 3, 4, 5, 6};
int startIndex = 1;
int endIndex = 4;
int[] subArray = new int[endIndex - startIndex];
for (int i = 0; i < subArray.length; i++) {
subArray[i] = originalArray[startIndex + i];
}
System.out.println(Arrays.toString(subArray)); // 输出: [2, 3, 4]
}
}
使用System.arraycopy()方法
System.arraycopy()是另一种高效的方式,用于将一个数组的部分内容复制到另一个数组。
public class Main {
public static void main(String[] args) {
int[] originalArray = {1, 2, 3, 4, 5, 6};
int startIndex = 1;
int length = 3;
int[] subArray = new int[length];
System.arraycopy(originalArray, startIndex, subArray, 0, length);
System.out.println(Arrays.toString(subArray)); // 输出: [2, 3, 4]
}
}
注意事项
- 确保起始索引和结束索引在数组的有效范围内,否则会抛出
ArrayIndexOutOfBoundsException异常。 - 如果使用
Arrays.copyOfRange(),结束索引可以大于原数组长度,超出部分会用默认值填充。 - 对于对象数组,截取后的数组和原数组共享对象的引用,修改其中一个数组的元素会影响另一个数组。
以上方法适用于大多数场景,选择哪种方法取决于具体需求和性能考虑。






