数组基本知识2

目录

 

前言

二维数组

使用原因

定义二维数组

访问数组元素

实例


 

前言

上一篇,我简单的复习了一维数组,本篇讲述二维数组的基本知识,帮助大家预习和复习。

二维数组

使用原因

本质原因:一维数组,已经无法满足解决实际问题的需要

例如:要统计一个学校各个班级学生的考试成绩,既要标示班级,又要标示学生成绩,如果使用一维数组的话,一个数组,只能表示一个因此当真正解决这项问题时,需要同时创建两个一维数组分别表示对应的目标,最后同时输出。但这样的写法是,比较繁琐的,为了使你编写的代码简洁,所以才有了二维数组。

定义二维数组

格式  1(已经确定好,行数和列数)

数据类型 [   ] [  ] 数组名=new  数据类型 [ 行数] [ 列数  ] ;

实例

int  [  ] [  ] xx=new int [3 ]  [4  ];

理解:上面代码,表示3*4 的二维数组,即3行4列的二维数组。其中 xx[0] ,xx[1],xx[2] 度可以理解成一个一维数组。

6b16890014ae43efb8bd4600a5e680b1.png

格式 2 (确定行数,但不确定列数)

数据类型 [  ]  [   ]数组名  =new 数据类型 [ 行数 ] [  ] ;

实例 

int [  ]  [  ] xx =new int [3 ] [  ];

注意:行数一定不能省略, 列数根据实际需要判断是否需要。

格式 3 (确定元素值)

数据类型 [  ]  [   ]数组名  = {   {第1行初始值} ,{第2行初始值}, {第3行初始值},......{第n行初始值}    } ;

实例

int  [  ]  [  ]xx=          {   {1,2} ,{3,4,5,6}, {7,8,9} } ;   

访问数组元素

我们知道二维数组,就相当于走楼梯。

大家小时候,在楼梯上玩,有时,有人会问你:你现在什么位置?你可能会说,我在3 楼 第四个阶梯(假设6层楼,每层楼有8个阶梯)。那么如果用二维数组应该怎么表示,我处在的楼梯位置呢

思路

首先创建一个二维数组表示 一栋楼的楼数和阶梯数。

int [  ] [ ] address= new int [ 6] [8] ;

其次 表示你所在的位置----我在3 楼 第四个阶梯

address [3] [4 ] 这就是我们所在的位置。

实例

 问题:统计 一个 公司 3 个 销售小组中每一个小组的销售额 以及整个公司的总销售额

第1 个小组 : 11,12 。

第2个小组 : 21,22,23 。

第3个小组 : 31,32,33,34 。

思路

最终目的:得到小组的销售额和总销售额

1 总销售额=所有小组销售额相加  ,并且小组销售,每一个小组成员销售相加

2 发现使用二维数组表示最为方便的(本题中,我们不仅要表示小组之间的关系还要表示小组内部的关系,需要使用到二维数组。如果使用一维数组的话,需要同时创建两个数组才行,过程比较繁琐)

3 使用循环嵌套,内层循环表示每一个小组销售总额,外层循环表示小组相加的最终销售总额。

代码如下

public class Example2 {
    public static void main(String[] args) {
        int [] [] arr=new int[3][];
        arr[0]=new int[]{11,12};
        arr[1]=new int[]{21,22,23};
        arr[2]=new int[]{31,32,33,34};
        int sum=0;//总销售额
        int groupsum=0;//小组销售额
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                groupsum+=arr[i][j];
            }
            sum+=groupsum;
            System.out.println("小组销售"+groupsum);
            groupsum=0;
        }
        System.out.println("总销售额="+sum);

    }
}

c1e9257f4d424b5088e8ca4bdcdbbc4c.png

当你写完,你发现,小组销售额groupsum 只要在外层循环写一遍,就可以了。没必要在for循环外设置为全局变量。

修改后:

public class Example2 {
    public static void main(String[] args) {
        int [] [] arr=new int[3][];
        arr[0]=new int[]{11,12};
        arr[1]=new int[]{21,22,23};
        arr[2]=new int[]{31,32,33,34};
        int sum=0;//总销售额

        for(int i=0;i<arr.length;i++){
            int groupsum=0;//小组销售额
            for(int j=0;j<arr[i].length;j++){
                groupsum+=arr[i][j];
            }
            sum+=groupsum;
            System.out.println("小组销售"+groupsum);
//            groupsum=0;
        }
        System.out.println("总销售额="+sum);

    }
}

 

 

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值