Java二维数组特定对角线模式填充怎么实现

来源:站长平台作者:宋琮安头衔:草根站长
导读:本期聚焦于小伙伴创作的《Java二维数组特定对角线模式填充怎么实现》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Java二维数组特定对角线模式填充怎么实现》有用,将其分享出去将是对创作者最好的鼓励。

Java二维数组的对角线模式填充指的是按照矩阵对角线的走向,将指定的元素值填充到二维数组的对应位置,常见的填充模式包括主对角线填充、副对角线填充以及斜向遍历填充等,不同的填充规则需要对应不同的遍历逻辑。

基础准备:定义二维数组

首先需要定义一个二维数组,通常二维数组的行数和列数可以相同也可以不同,这里以n行n列的方阵为例,先初始化数组并默认填充0,后续再按照对角线规则替换对应位置的值。

public class DiagonalFillDemo {
    public static void main(String[] args) {
        int n = 5; // 定义方阵的边长
        int[][] matrix = new int[n][n]; // 初始化5行5列的二维数组,默认值为0
        // 后续填充逻辑将在这里编写
    }
}

主对角线填充实现

主对角线指的是二维数组中行索引和列索引相等的元素组成的线,即matrix[i][i]的位置,填充时只需要遍历索引从0到n-1,将对应位置赋值为目标值即可。

public class DiagonalFillDemo {
    public static void main(String[] args) {
        int n = 5;
        int[][] matrix = new int[n][n];
        int fillValue = 1; // 填充的目标值
        // 主对角线填充逻辑
        for (int i = 0; i < n; i++) {
            matrix[i][i] = fillValue;
        }
        // 打印数组查看结果
        printMatrix(matrix);
    }

    // 打印二维数组的辅助方法
    private static void printMatrix(int[][] matrix) {
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + "t");
            }
            System.out.println();
        }
    }
}

运行上述代码后,输出的二维数组中只有主对角线位置的元素为1,其余位置为默认的0。

副对角线填充实现

副对角线指的是二维数组中行索引和列索引之和等于n-1的元素组成的线,即matrix[i][n-1-i]的位置,填充时遍历索引从0到n-1,将对应位置赋值为目标值即可。

public class DiagonalFillDemo {
    public static void main(String[] args) {
        int n = 5;
        int[][] matrix = new int[n][n];
        int fillValue = 2; // 副对角线填充的目标值
        // 副对角线填充逻辑
        for (int i = 0; i < n; i++) {
            matrix[i][n - 1 - i] = fillValue;
        }
        printMatrix(matrix);
    }

    private static void printMatrix(int[][] matrix) {
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + "t");
            }
            System.out.println();
        }
    }
}

斜向遍历填充模式

斜向遍历填充是指按照从左上到右下的斜线方向依次填充元素,每条斜线上的元素满足行索引减列索引为固定值。可以通过遍历差值的方式实现,差值的范围从-(n-1)到n-1。

public class DiagonalFillDemo {
    public static void main(String[] args) {
        int n = 5;
        int[][] matrix = new int[n][n];
        int currentValue = 1; // 初始填充值
        // 斜向遍历填充,差值为d,d = i - j
        for (int d = -(n - 1); d <= n - 1; d++) {
            for (int i = 0; i < n; i++) {
                int j = i - d;
                // 判断列索引j是否在合法范围内
                if (j >= 0 && j < n) {
                    matrix[i][j] = currentValue;
                    currentValue++;
                }
            }
        }
        printMatrix(matrix);
    }

    private static void printMatrix(int[][] matrix) {
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + "t");
            }
            System.out.println();
        }
    }
}

注意事项

  • 操作二维数组时一定要注意索引的边界,避免数组越界异常,所有的行索引和列索引都需要在0到n-1的范围内。
  • 如果二维数组是行列数不同的矩形,需要调整遍历的边界条件,比如行数为m,列数为n时,副对角线的列索引计算方式不变,但遍历的行数边界要取较小值。
  • 填充时如果需要对不同对角线赋予不同的值,可以在遍历过程中根据差值或者索引关系调整填充值。

Java二维数组对角线填充数组操作修改时间:2026-06-10 17:42:33

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。