You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何反转Java二维数组的行?已有一维数组反转算法

反转Java二维数组的行顺序

你要实现的二维数组行反转,核心逻辑和你掌握的一维数组反转完全一致——只不过操作对象从单个int元素变成了二维数组中的一维行数组。

核心实现代码

基于你提供的一维反转思路,直接改写为行反转逻辑:

// 初始化题目中的二维数组
int[][] arr = {
    {1, 1, 1, 1, 1, 1, 1, 1},
    {0, 0, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 1},
    {1, 0, 1, 0, 1, 0, 1, 0}
};

// 反转行的核心循环
for (int i = 0; i < arr.length / 2; i++) {
    // 暂存当前行
    int[] tempRow = arr[i];
    // 交换当前行与对称位置的行
    arr[i] = arr[arr.length - i - 1];
    arr[arr.length - i - 1] = tempRow;
}

代码说明

  • arr.length对应你定义的firstDimension(二维数组的总行数)
  • 循环只需执行总行数的一半次数,每一次循环完成一对行的交换
  • 用tempRow临时存储行数据,避免直接赋值导致的数组引用丢失

验证结果

执行上述代码后,二维数组的行顺序会被反转,得到你需要的结果:

[[1, 0, 1, 0, 1, 0, 1, 0], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1]]

扩展说明

如果你的二维数组是不规则数组(每行元素长度不同),这个逻辑依然有效——因为我们只是交换整个行的引用,不需要关心每行内部的元素结构。

内容的提问来源于stack exchange,提问作者IMBABOT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:15:38