二维数组的使用及案例

文章详细介绍了如何在Java中定义、初始化和遍历二维数组,包括动态指定一维数组长度和初始化不同长度的一维数组。此外,还提供了杨辉三角的实现代码,该程序从控制台接收输入,生成并打印指定行数的杨辉三角图案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二维数组的定义:
    二维数组的每一个元素是一个一维数组
    例如:int[][] a = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}};
下面通过代码展示一下二维数组的创建,初始化和遍历

import java.util.Arrays;

public class Array_twoDemo1 {
    public static void main(String[] args) {
        /**
         * 二维数组的声明方式:
         *      ①int [][] a;
         *      ②int a2[][];
         *      建议使用第一种,方便分清 a 的类型
         * 指定长度后创建,会自动对数组进行初始化
         * int[][] a = new int[3][3]; // [[0, 0, 0][0, 0, 0][0, 0, 0]]
         */
        int[][] a = new int[3][]; // 只确定了二维数组的长度,没有明确的二维数组的长度
        System.out.println(Arrays.deepToString(a)); // [null, null, null]

        // 动态给一维数组定义长度
        a[0] = new int[1];
        a[1] = new int[2];
        a[2] = new int[3];
        System.out.println(Arrays.deepToString(a)); // [[0], [0, 0], [0, 0, 0]]

        /**
         * 二维数组初始化
         *int[][] b = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
         *简化后
         */
        int[][] b = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        System.out.println(Arrays.deepToString(b)); // [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

        /**
         * 也可以初始化给二维数组的一维数组不同长度
         */
        int[][] c = {{1}, {4, 5}, {7, 8, 9}};
        System.out.println(Arrays.deepToString(c)); // [[1], [4, 5], [7, 8, 9]]

        // 二维数组的遍历
        for (int i = 0; i < c.length; i++) {
            // 遍历二维数组中的一维数组
            for (int j = 0; j < c[i].length; j++) {
                System.out.print(c[i][j] + "\t");
            }
        }
        System.out.println();
    }
}

二维数组的使用案例:杨辉三角
代码如下:

import java.util.Scanner;

public class YHsanjiao {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int length = scan.nextInt();
        // 定义要打印的杨辉三角长度
        int[][] yhSanJiao = new int[length][2 * length - 1];

        // 给第一个元素赋值
        yhSanJiao[0][yhSanJiao[0].length / 2] = 1;
        // 给最后一个元素赋值
        yhSanJiao[length - 1][2 * length - 2] = 1;

        // 给杨辉三角其他元素赋值
        for (int i = 1; i < length; i++) {
            for (int j = 1; j < yhSanJiao[i].length - 1; j++) {
                yhSanJiao[i][j] = yhSanJiao[i - 1][j - 1] + yhSanJiao[i - 1][j + 1];
            }
        }

        // 打印杨辉三角
        for (int i = 0; i < length; i++) {
            for (int j = 0; j < yhSanJiao[i].length; j++) {
                if (yhSanJiao[i][j] == 0) {
                    System.out.print("      ");
                } else {
                    System.out.printf("%-6d", yhSanJiao[i][j]);
                }
            }
            System.out.println();
        }
    }
}

该程序可以从控制台接收一个数字,打印对应行数的杨辉三角

运行结果如下:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Black—slience

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值