zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Java基础知识及细节之二维数组

JAVA基础知识数组 细节 二维
2023-06-13 09:11:17 时间

Debug模式

什么是Debug模式

是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。

Debug介绍与操作流程

  • 如何加断点
    • 选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可
  • 如何运行加了断点的程序
    • 在代码区域右键Debug执行
  • 看哪里
    • 看Debugger窗口
    • 看Console窗口
  • 点哪里
    • 点Step Into (F7)这个箭头,也可以直接按F7
  • 如何删除断点
    • 选择要删除的断点,单击鼠标左键即可
  • 如果是多个断点,可以每一个再点击一次。也可以一次性全部删除 如果数据来源于键盘录入,一定要记住输入数据,不然就不能继续往下查看了。

二维数组

二维数组概述

概述 : 二维数组也是一种容器,不同于一维数组,该容器存储的都是一维数组容器

二维数组动态初始化

动态初始化格式: 数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组,可以存放多少个一维数组 n表示每一个一维数组,可以存放多少个元素

/**
 * @Author: ✎﹏ Sunflower丶
 */
public class Demo1 {
    /*
        动态初始化格式:

            数据类型[][] 变量名 = new 数据类型[m][n];
            m表示这个二维数组,可以存放多少个一维数组
            n表示每一个一维数组,可以存放多少个元素
     */
    public static void main(String[] args) {
        // 数据类型[][] 变量名 = new 数据类型[m][n];
        int[][] arr = new int[3][3];
        /*
            [[I@10f87f48

            @ : 分隔符
            10f87f48 : 十六进制内存地址
            I : 数组中存储的数据类型
            [[ : 几个中括号就代表的是几维数组
         */
        System.out.println(arr);

        /*
            二维数组存储一维数组的时候, 存储的是一维数组的内存地址
         */
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        System.out.println(arr[0][0]);
        System.out.println(arr[1][1]);
        System.out.println(arr[2][2]);

        // 向二维数组中存储元素
        arr[0][0] = 11;
        arr[0][1] = 22;
        arr[0][2] = 33;

        arr[1][0] = 11;
        arr[1][1] = 22;
        arr[1][2] = 33;

        arr[2][0] = 11;
        arr[2][1] = 22;
        arr[2][2] = 33;

        // 从二维数组中取出元素并打印
        System.out.println(arr[0][0]);
        System.out.println(arr[0][1]);
        System.out.println(arr[0][2]);
        System.out.println(arr[1][0]);
        System.out.println(arr[1][1]);
        System.out.println(arr[1][2]);
        System.out.println(arr[2][0]);
        System.out.println(arr[2][1]);
        System.out.println(arr[2][2]);
    }
}

二维数组访问元素的细节问题

问题 : 二维数组中存储的是一维数组, 那能不能存入 [提前创建好的一维数组] 呢 ? 答 : 可以的

代码实现

/**
 * @Author: ✎﹏ Sunflower丶
 */
public class Demo2 {
    /*
        问题: 二维数组中存储的是一维数组, 那能不能存入 [提前创建好的一维数组] 呢 ?
        答 : 可以的
     */
    public static void main(String[] args) {
        int[] arr1 = {11,22,33};
        int[] arr2 = {44,55,66};
        int[] arr3 = {77,88,99,100};

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

        arr[2][3] = 100;

        arr[0] = arr1;
        arr[1] = arr2;
        arr[2] = arr3;

        System.out.println(arr[1][2]);
        System.out.println(arr[2][3]);
    }
}

二维数组静态初始化

 **完整格式 :**

数据类型[][] 变量名 = new 数据类型[][]{ {元素1, 元素2...} , {元素1, 元素2...}

 **简化格式 :**  

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

**代码实现 : **

/**
 * @Author: ✎﹏ Sunflower丶
 */
public class Demo3 {
    /*
        完整格式:数据类型[][] 变量名 = new 数据类型[][]{ {元素1, 元素2...} , {元素1, 元素2...} ...};

        简化格式: 数据类型[][] 变量名 = { {元素1, 元素2...} , {元素1, 元素2...} ...};
     */
    public static void main(String[] args) {
        int[] arr1 = {11,22,33};
        int[] arr2 = {44,55,66};

        int[][] arr = {{11,22,33}, {44,55,66}};
        System.out.println(arr[0][2]);

        int[][] array = {arr1,arr2};
        System.out.println(array[0][2]);
    }
}

二维数组遍历

需求 :

​ 已知一个二维数组 arr = {{11, 22, 33}, {33, 44, 55}};

​ 遍历该数组,取出所有元素并打印

步骤 :

      1. 遍历二维数组,取出里面每一个一维数组
      2. 在遍历的过程中,对每一个一维数组继续完成遍历,获取内部存储的每一个元素

代码实现 :

/**
 * @Author: ✎﹏ Sunflower丶
 */
public class Test1 {
    /*
        需求:

            已知一个二维数组 arr = {{11, 22, 33}, {33, 44, 55}};
            遍历该数组,取出所有元素并打印

        步骤:
            1. 遍历二维数组,取出里面每一个一维数组
            2. 在遍历的过程中,对每一个一维数组继续完成遍历,获取内部存储的每一个元素
     */
    public static void main(String[] args) {
        int[][] arr = {{11, 22, 33}, {33, 44, 55}};

        // 1. 遍历二维数组,取出里面每一个一维数组
        for (int i = 0; i < arr.length; i++) {
            //System.out.println(arr[i]);
            // 2. 在遍历的过程中,对每一个一维数组继续完成遍历,获取内部存储的每一个元素
            //int[] temp = arr[i];
            for (int j = 0; j < arr[i].length; j++) {
                System.out.println(arr[i][j]);
            }
        }
    }
}

二维数组求和

需求 :

 某公司季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99

代码实现 :

/**
 * @Author: ✎﹏ Sunflower丶
 */
public class Demo05 {
    /*
    二维数组求和,输出单季度和,和总季度和。
     */
    public static void main(String[] args) {
        //数组
        int[][] arr ={{22, 66, 44}, {77, 33, 88}, {25, 45, 65}, {11, 66, 99}};
        //记录每个季度的和
        int sum1 = 0;
        //求和变量,准备记录最终求和结果
        int  sum2 = 0;
        //遍历二维数组
        for (int i = 0; i < arr.length; i++) {
            sum1 = 0;
            //遍历二维数组中的一维数组
            for (int j = 0; j < arr[i].length; j++) {
                sum1 += arr[i][j];
            }
            //输出季度和
            System.out.println(sum1);
            sum2 += sum1;
        }
        //输出总和
        System.out.println(sum2);
    }
}