二维数组

所谓二维数组就是数组中的数组,它的定义格式和一维数组很像。

格式一:int[][] arr = new int[3][4];

             [3]:该数组中有三个一维数组

             [4]:每个一维数组的长度为4

格式二:int[][] arr = new int[3][];

             这种格式没有定义出每个一维数组的长度,需要自己去定义,arr[0] = new int[2];所以这种方法比较麻烦,不常用

格式三:int[][] arr = {{1,2,3},{4,5},{6,7,8},{9,0}};

             这种定义方式简单有效,最常用

下面通过一段代码来演示二维数组的定义:

/*
二维数组的定义,获取数组中的元素
*/
public class ArrayArrayDemo{
         public static void main(String[] args){
                   //创建一个二维数组
                   int[][] arr ={{1,2,3},{4,5,6},{7,8,9},{0}};
                   //获取数组中的元素进行打印
                   System.out.println(arr[1][2]);
         }
}

运行结果:ArrayArrayDemo.jpg

如何遍历二维数组

遍历一维数组需要for循环,那么二维数组也可以用这种循环进行遍历,这时就需要for循环的嵌套来进行遍历,具体怎样遍历见下面的代码:

/*
二维数组的遍历
*/
public class ArrayArrayDemo_1{
         public static void main(String[] args){
                   //创建一个二维数组
                   int[][] arr ={{1,2,3},{4,5,6},{7,8,9},{0}};
                   //for循环的嵌套进行遍历数组
                   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();
                   }
         }
}

案例:运用二维数组进行销售额的计算

统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额。如下所示

第一小组销售额为{11, 12}万元

第二小组销售额为{21, 22, 23}万元

第三小组销售额为{31, 32, 33, 34}万元。

/*
需求:统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额。如下所示
      第一小组销售额为{11, 12}万元
      第二小组销售额为{21, 22, 23}万元
      第三小组销售额为{31, 32, 33, 34}万元。
思路:1、定义销售小组的二维数组
2、 创建两个变量分别存储小组销售额和总销售额
3、用for循环进行遍历求和(小组和总额)
*/
public class ArrayArrayDemo_2{
        public static void main(String[] args){
      //定义销售小组的数组
      int[][] arr ={{11,12},{21,22,23},{31,32,33,34}};
      //定义两个变量来存储小组销售额和总销售额
      int sum = 0;
      int groupSum = 0;
      //使用for循环进行数组的遍历
      for(int i=0;i<arr.length;i++){
            //每次小组销售额计算完成都要清空
            groupSum = 0;
            for(int j=0;j<arr[i].length;j++){
            groupSum += arr[i][j];
            }
            System.out.println("第"+(i+1)+"小组的销售额为:"+groupSum);
            sum += groupSum;
      }
      System.out.println("公司的总销售额为:"+sum);
  }
}

运行结果:ArrayArrayDemo_2.jpg

案例:随机点名器

对全班同学的姓名随机打印输出

/*
需求:对全班同学的姓名随机打印输出
分析思路:1、需要定义一个数组存储全班同学的姓名
2、需要对全班同学的姓名进行一次遍历
                   3、需要产生一个随机数对随机的姓名打印输出
*/
import java.util.Random;
public class ArrayArrayDemo_3{
         public static void main(String[] args){
                   //定义一个数组来存储这些姓名
                   String[] names = {"白莲女","石玉兰","申换换","折为成","尚文清","折得民"};
                   //将这些姓名进行遍历打印
                   for(int i=0;i<names.length;i++){
                            System.out.print(names[i]+"、");
                   }
                   System.out.println();
                   System.out.println("-----------------------------------------------");
                   //通过随机数的产生来随机姓名
                   Random ran = new Random();
                   int index = ran.nextInt(names.length);
                   System.out.println(names[index]);
         }
}

运行结果:ArrayArrayDemo_3.jpg