Java数组截取一段具体实现方法是什么?
- 后端开发
- 2025-10-11
- 7
在Java中,数组是基本的数据结构之一,用于存储一系列具有相同数据类型的元素,有时,我们可能需要从数组中截取一段子数组,以便进行某些操作或处理,以下是如何在Java中截取数组一段的详细步骤。
使用Java截取数组一段的方法
使用数组的长度和索引
这种方法是最简单直接的方法,适用于基本类型数组和对象数组。

使用Arrays.copyOfRange方法
Java的Arrays类提供了一个名为copyOfRange的方法,可以更方便地截取数组一段。
import java.util.Arrays; public class ArraySliceExample { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int start = 2; // 开始索引 int end = 6; // 结束索引 int[] subArray = Arrays.copyOfRange(array, start, end); // 打印截取的数组 for (int i = 0; i < subArray.length; i++) { System.out.print(subArray[i] + " "); } } }
使用subList方法(仅适用于List)
如果你有一个List类型的数组,可以使用subList方法来截取一段。

import java.util.ArrayList; import java.util.List; public class ArraySliceExample { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); list.add(7); list.add(8); list.add(9); list.add(10); int start = 2; // 开始索引 int end = 6; // 结束索引 List<Integer> subList = list.subList(start, end); // 打印截取的数组 for (int i = 0; i < subList.size(); i++) { System.out.print(subList.get(i) + " "); } } }
表格对比
| 方法 | 优点 | 缺点 |
|---|---|---|
| 使用数组的长度和索引 | 简单直接,适用于所有类型的数组 | 需要手动复制元素 |
| 使用Arrays.copyOfRange方法 | 简单易用,适用于所有类型的数组 | 需要创建新的数组 |
| 使用subList方法(仅适用于List) | 简单易用,适用于List类型数组 | 需要创建新的List |
FAQs
Q1:如何截取一个字符串数组中的一段?
A1:你可以使用类似截取数字数组的方法,使用数组的长度和索引或Arrays.copyOfRange方法。
Q2:如何截取一个二维数组中的一段?
A2:截取二维数组中的一段稍微复杂一些,你可以使用嵌套循环来遍历二维数组的指定行和列,以下是一个示例:
public class ArraySliceExample { public static void main(String[] args) { int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int startRow = 1; // 开始行索引 int endRow = 3; // 结束行索引 int startCol = 1; // 开始列索引 int endCol = 3; // 结束列索引 int[][] subArray = new int[endRow startRow][endCol startCol]; for (int i = 0; i < subArray.length; i++) { for (int j = 0; j < subArray[i].length; j++) { subArray[i][j] = array[startRow + i][startCol + j]; } } // 打印截取的数组 for (int i = 0; i < subArray.length; i++) { for (int j = 0; j < subArray[i].length; j++) { System.out.print(subArray[i][j] + " "); } System.out.println(); } } }
