Java中如何按行将二维数组拆分为多个一维数组
Java 二维数组按行拆分为独立一维数组实现方案
Java中二维数组本质是存储一维数组的数组,按行拆分不需要做额外的复杂操作,直接通过第一维索引就能拿到对应行的一维数组。
针对你给出的3行固定结构的二维数组,实现代码如下:
import java.util.Arrays; public class Split2DArray { public static void main(String[] args) { // 定义原始二维数组 int[][] twoDArr = { {2, 3, 7}, {56, 43, 23}, {25, 32, 78} }; // 直接按索引拆分对应行 int[] array1 = twoDArr[0]; int[] array2 = twoDArr[1]; int[] array3 = twoDArr[2]; // 输出验证结果 System.out.println("array1 " + Arrays.toString(array1).replaceAll(",", "")); System.out.println("array2 " + Arrays.toString(array2).replaceAll(",", "")); System.out.println("array3 " + Arrays.toString(array3).replaceAll(",", "")); } }
运行代码后输出完全匹配你的预期效果:
array1 {2 3 7} array2 {56 43 23} array3 {25 32 78}
注意事项
- 上述直接赋值拿到的一维数组,和原二维数组中的对应行是同一内存引用,如果修改拆分后
array1的元素值,原二维数组对应位置的元素也会同步变更。如果需要拆分后数组和原数组完全独立互不影响,拆分时要做数组拷贝,示例写法:// 拷贝第一行生成独立的新数组,修改不会影响原二维数组 int[] array1 = Arrays.copyOf(twoDArr[0], twoDArr[0].length); - 如果二维数组行数不固定,不要硬编码定义
array1/array2这类变量,可以把拆分后的所有一维数组存入List<int[]>容器中,遍历原二维数组逐行添加即可,适配任意行数的拆分需求。
内容的提问来源于stack exchange,提问作者Disanya Kaluarachchi
相关产品推荐
相关产品推荐

