Java中数组的定义及使用

数组

数组的定义:数组是存储多个变量(元素)的东西(容器),这多个变量的数据类型要一致;

一维数组的初始化

数组的初始化分为两种:静态初始化+动态初始化;
静态初始化:给定数组的值,系统确定数组的长度;
动态初始化:给定数组的长度,系统给数组元素赋值,一般赋值为0或者null。

一维数组初始化举例

静态 : 数组类型[ ] 数组名 = new 数组类型 [ ] { 元素1, 元素2,… ,元素n };
int[ ] arr = new int [ ] { 1, 2, 3, 4};
(简) int[ ] arr = { 1, 2, 3, 4};
动态 : 数组类型[ ] 数组名 = new 数组类型 [ 长度 ] ;
int[ ] arr = new int [ 3 ];
注意事项: 这两种方式,只能使用一种,不能进行动静结合

二维数组的初始化

格式1 : 数组类型 [ ] [ ] 数组名 = new 数组类型 [ m ] [ n ]; (推荐使用)
int [ ] [ ] arr = new int [ 3 ] [ 2 ];
格式2 :数据类型 [ ] 数组名 [ ] = new 数组类型 [ m ] [ n ]; (不推荐)
int [ ] arr [ ] = new arr [ m ] [ n ];
int [ ] x, y [ ] :定义了两个数组
格式3 :数据类型 数组名 [ ][ ] = new 数据类型 [ m ] [ n ];
格式4 :数据类型 [ ] [ ] 变量名 = new 数据类型 [ m ] [ ];
m表示这个二维数组有多少个一维数组,这一次没有直接给出一维数组的元素个数,可以动态的给出。
举例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[1];
格式5 :
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
简化版:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
这个格式属于静态初始化:由我们指定具体的元素值,由系统给分配长度
举例:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
int[][] arr = {{1,2,3},{5,6},{7}};

数组元素遍历赋

打印杨辉三角形(行数可以键盘录入)

	1
	1 1	
	1 2 1
	1 3 3 1
	1 4 6 4 1 
	1 5 10 10 5 1
public class MyTest4 {
    public static void main(String[] args) {
        /*
         *  观察上面图形的规律
         *  1.每一个行的第一个数和最后一个数都是1
         *  2.从第三行开始 从第二列开始 这个数字等于我上一行前一列和上一行的本列之和

         * */

        //我们可以使用二维数组来存储上面的数据
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入行数");
        int n = sc.nextInt();

        int[][] arr = new int[n][n];
        //我们先把每一行的第一个元素和第二个元素赋值成1
        for (int i = 0; i < arr.length; i++) {
            arr[i][0] = 1;
            arr[i][i] = 1;
        }
        //算出中间元素
        for (int i = 2; i < arr.length; i++) {
            for (int j = 1; j <= i; j++) {
                //  2. 从第三行开始 从第二列开始 这个数字等于我上一行前一列和上一行的本列之和

                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];

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

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值