二维数组

二维数组的应用场景:

但我们需要把数据分组管理的时候,就需要用到二维数组

二维数组初始化:

1、静态初始化:

格式:

数据类型[][]数组名 =new 数据类型[][]{{元素1,元素2},{元素1,元素2}};

eg:

int [][] arr = new int[][]{{11,22},{33,44}}

简化格式:

数据类型[][]数组名 ={{元素1,元素2},{元素1,元素2}};

eg:

int[][] arr = {{11,22},{33,44}}

或者:(一般不建议用)

int arr [][] = {{11,22},{33,44}}

例子:二维数组初始化

package com.itheima.Method;
//二维数组初始化
public class 二维数组加遍历 {
    public static void main(String[] args) {
        //两种方式静态初始化数组
        int[][] arr = new int[][]{{12, 25, 36}, {52, 74, 68}, {88, 32, 60}};
        int[][] arr1 = {{12, 25, 36}, {52, 74, 68},{88, 32, 60}};
        int[][] arr2 = {
                {12, 25, 36},
                {52, 74, 68},//每一个一维数组其实是二维数组的元素中的元素,所以每一个一维数组之间都需要用逗号隔开
                {88, 32, 60}//最后一个一维数组后面不需要加逗号
        };
        //获取数组
//        System.out.println(arr2[0]);//表示获取二维数组中的第一个一维数组
        //arr2[0]:表示获取二维数组中的第一个一维数组
        //arr2[0][0]:获取第1个一维数组中0索引的元素
        System.out.println(arr2[0][0]);//12
        System.out.println(arr[2][0]);//88

运行结果:

12 88

例子:二维数组遍历

package com.itheima.Method;
//二维数组初始化
public class 二维数组加遍历 {
    public static void main(String[] args) {
        //两种方式静态初始化数组
        int[][] arr = new int[][]{{12, 25, 36}, {52, 74, 68}, {88, 32, 60}};
        int[][] arr1 = {{12, 25, 36}, {52, 74, 68},{88, 32, 60}};
        int[][] arr2 = {
                {12, 25, 36},
                {52, 74, 68},//每一个一维数组其实是二维数组的元素中的元素,所以每一个一维数组之间都需要用逗号隔开
                {88, 32, 60}//最后一个一维数组后面不需要加逗号
        };
        //遍历二维数组
        //外循环:遍历二维数组里面的一维数组
        for (int i = 0; i < arr2.length; i++) {
            //i:表示二维数组中的每一个索引
            //arr2[i]:表示以为数组中的每一个元素(一维数组)
            //内循环:遍历一维数组,得到里面的每一个元素
            for (int j = 0; j < arr2[i].length; j++) {
                //j表示一维数组中的每一个元素
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();//换行
        }
    }
}

运行结果:

12 25 36 52 74 68 88 32 60

2、动态初始化:

格式:数据类型[][] 数组名 = new 数据类型[m][n] ;

m:表示这个二二维数组可以存放多少个一维数组

n:表示这每一个一维数组可以存放多少个元素

eg:

int[][] arr = new int[2][3];

该数组可以存放两个一维数组,每一个一维数组中可以存放三个int类型元素

例子:

package com.itheima.Method;

public class 二维数组动态初始化加遍历 {
    public static void main(String[] args) {
        int [][] arr = new int[3][5];
        arr[0][0] = 10;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}

运行结果::

10 0 0 0 0 0 0 0 0 0 0 0 0 0 0

二维数组内存图:

二维数组的特殊情况:

特殊情况1:

特殊情况2:

二维数组练习

二维数组的练习:

计算出某商城每个季度的总营业额和全年的总营业额

package com.itheima.Method;

/*
二维数组的练习:
计算出某商城每个季度的总营业额和全年的总营业额
 */
public class 二维数组练习 {
    public static void main(String[] args) {
        int[][] yearArr = {
                {22, 66, 44},
                {77, 33, 88},
                {25, 45, 65},
                {11, 66, 99}
        };//定义一个二维数组
        int yearSum = 0;//定义一个总营业额变量。
        for (int i = 0; i < yearArr.length; i++) {
            int[] seasonArr = yearArr[i];//定义一个变量,存储每一个季度的营业额
            int sum = sumSeasonArr(seasonArr);//调用每一个季度的营业额方法
            System.out.println("第"+i+1+"个季度的营业额为:"+sum);
            yearSum +=sum;//全年总营业额
        }
        System.out.println("全年总营业额为:"+yearSum);
    }
    //定义一个方法,计算每一个季度的营业额
    public static int sumSeasonArr(int[] arr) {
        int sum = 0;//定义一个求和的变量
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];//遍历每一个季度,并求每一个季度的和
        }
        return sum;//返回变量
    }
}

运行结果:

第01个季度的营业额为:132 第11个季度的营业额为:198 第21个季度的营业额为:135 第31个季度的营业额为:176 全年总营业额为:641

作者:|xiaoxiao1024|,原文链接: https://www.cnblogs.com/xiao-xiao1024/p/17364931.html

文章推荐

node版本问题:Error: error:0308010C:digital envelope rou...

APP中RN页面热更新流程-ReactNative源码分析

多图详解:不停机分库分表五个步骤

Github Copilot Chat 初体验

从原理聊JVM(三):详解现代垃圾回收器Shenandoah和ZGC

KMeans算法与GMM混合高斯聚类

Activiti 7 启动流程实例

Ocelot的限流、熔断和负载均衡

Next.js 实践:从 SSR 到 CSR 的优雅降级

Vue—关于实例中为什么只能有一个根元素?

Vue自定义组件之v-model的使用

源码解读etcd heartbeat,election timeout之间的拉锯