首页 > 编程语言 >Java二维数组

Java二维数组

时间:2023-04-30 09:56:03浏览次数:49  
标签:arr Java 数组 int 元素 二维 一维

二维数组

二维数组的应用场景:

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

二维数组初始化:

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

标签:arr,Java,数组,int,元素,二维,一维
From: https://www.cnblogs.com/xiao-xiao1024/p/17364931.html

相关文章

  • HashMap的数组长度为何必须是2的n次方
    扩容方便,数字位移计算方便效率高;计算元素下标使用的方式是key的hash&(数组length-1),由于length是2^n,转换成二进制后2^-1最低位就全部都是1,比如111,就相当于是数组长度的掩码,那么hash&111就可以将数组的每一位都覆盖,加入数组长度不是2^n,那么length-1低位不全是1,比如101,那么h......
  • java io流 高级流
    转换流是字符流和字节流之间的桥梁转换输入流InputSteamReader转换输出流OutputStreamWriter作用1:指定字符集读写(JDK11之后淘汰)JDK11之后可直接用字节流的构造方法//指定GBK的编码读取数据FileReaderfr=newFileReader(FilefileName,Charset.forName("GBK......
  • javaScript基础之 --- 作用域和闭包
    本文是我学习《你所不知道的javaScript上卷》的读书笔记的整理。更多详细内容,请微信搜索“前端爱好者“,戳我查看。作用域和闭包作用域是什么javaScript工作原理中的角色引擎-从头到尾负责整个javascript程序的编译及执行过程编译器-负责语法分析及代码生成......
  • 【模板方法设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介模板方法模式(TemplateMethodPattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法,从而对剩余的逻辑有......
  • Java Lambda Stream
    javalist中的字符是否包括在另一个list中,::方法使用::方法使用条件:lambada表达式的主体仅包含一个表达式,且lambada表达式只调用一个已经存在的方法;被引用的方法的参数列表与lambada表达式的输入输出一致以下是Java8中方法引用的一些语法:静态方法引用(s......
  • Java学习2——第四-六次题目集的分析与总结
     一.前言 本次Blog是对java学习中第二阶段练习的一个总结,作为刚学习JAVA的小白,以下依旧只是本人作为普通学生,以当前能力和状态所做出的总结和分析,不足之处也欢迎各位大佬的指正! 这次的三个题目集,题量除了题目集六很少外,其它都是正常数量,当然题目集六的题也是最难的。总体难......
  • 2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数
    2023-04-29:一个序列的宽度定义为该序列中最大元素和最小元素的差值。给你一个整数数组nums,返回nums的所有非空子序列的宽度之和由于答案可能非常大,请返回对109+7取余后的结果。子序列定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组......
  • 2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数
    2023-04-29:一个序列的宽度定义为该序列中最大元素和最小元素的差值。给你一个整数数组nums,返回nums的所有非空子序列的宽度之和由于答案可能非常大,请返回对109+7取余后的结果。子序列定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数......
  • 长度最小的子数组--Python解法
    给定一个含有 n 个正整数的数组和一个正整数target。找出该数组中满足其和≥target的长度最小的连续子数组 [numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。defminSubArrayLen(self,s:int,nums:List[int])->int:......
  • JavaWeb回顾与小结(五)
    Mybatis基础操作环境准备工作准备数据库表创建一个新的springboot工程,选择引入对应的起步依赖(mybatis,mysql驱动,lombok)application.properties中引入数据库连接信息创建对应的实体类Emp(实体类属性采用驼峰命名)准备Mapper接口EmpMapper根据主键删除SQL语句delete......