Java学习笔记32——二维数组

技术Java学习笔记32——二维数组 Java学习笔记32——二维数组二维数组
概述二维数组:就是元素是一维数组的数组举例:二班{{小王,小李},{小刘,小明},{小朱,小伟}}二维数组的定义格式
格式

Java学习笔记32——二维数组

二维数组

概述

二维阵列:

也就是说,元素是一维数组的数组。

示例:

二班

{ {小王、小李}、{小刘、小明}、{朱晓、肖伟}}

二维数组的定义格式

格式1

/*

数据类型[] []变量名=新数据类型[m][n];

左侧:

数据类型:表示最终元素的数据类型。

[] []:表示二维数组。

变量:二维数组的名称。

右:

New:表示为二维数组分配了内存空间。

[m]:表示这个二维数组中有元素,其中元素代表m个一维数组。

[n]:表示每个一维数组中有n个元素,元素的数据类型与定义的相同。

示例:int[][] arr=new int[3][2]

说明:表示定义了一个名为arr的二维数组,元素由三个一维数组组成,其中

每个一维数组中的元素数是2。

{{1,2},{3,4},{5,6}}

注意格式转换:

1.以后开发的时候,我们会按照我给的格式来定义,但是下面定义的格式是正确的。

A:数据类型变量名[][]=新数据类型[m][n];

B:数据类型[]变量名[]=新数据类型[m][n];

示例:int[][]arr=new int[2][3];(推荐第一种)

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

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

*/

公共类Array2Demo1 {

公共静态void main(String[]args){ 0

//定义二维数组

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

//3表示它由三个一维数组组成。

//2表示每个一维数组中的元素个数是2。

//根据前面的输出格式,我们输出名字。

system . out . println(arr);//[[I@4554617c //输出堆内存中二维数组的地址值。

system . out . println(arr[0]);//[I@74a14482 //输出是内存中第一个一维数组的地址值。

system . out . println(arr[1]);//[I@1540e19d //输出内存中第二个一维数组的地址值。

system . out . println(arr[2]);//[I@677327b6 //输出内存中第三个一维数组的地址值。

//从数组中获取元素的方法是通过索引获取。

system . out . println(arr[0][0]);//0 //输出第一个一维数组中第一个元素的值。

system . out . println(arr[0][1]);//0 //输出第一个一维数组中第二个元素的值。

//ArrayindexOutofBoundSexception : 2

//system . out . println(arr[0][2]);

//输出第三个一维数组的第二个元素值。

system . out . println(arr[2][1]);

}

}

格式2

/*

数据类型[] []变量名=新数据类型[m][];

左侧:

数据类型:表示最终元素的数据类型。

[] []:表示二维数组。

变量:二维数组的名称。

右:

新增:为二维数组打开堆内存空间。

数据类型:表示最终元素的数据类型,以及每个一维数组中元素的数据类型。

[m]:这个二维数据由m个一维数组组成。

[]:这里暂时将每个一维数组中的元素个数写死,以将来传入的一维数组元素个数而定
举例:
int[][] arr = new int[3][]
*/
public class Array2Demo2 {
public static void main(String[] args) {
//使用第二种格式定义一个二维数组
int[][] arr = new int[3][];
//表示的是定义了一个二维数组,由3个一维数组当作元素组成
//只不过每一个一维数组的元素个数没有定
System.out.println(arr); //输出的是二维数组本身的地址值
System.out.println(arr[0]); //输出的是二维数组中第一个一维数组的地址值 null
System.out.println(arr[1]); //输出的是二维数组中第二个一维数组的地址值 null
System.out.println(arr[2]); //输出的是二维数组中第三个一维数组的地址值 null
//java.lang.NullPointerException 空指针异常
// System.out.println(arr[0][0]);
//将二维数组中每一个元素添加一个一维数组
//初始化一个元素个数为2个的一维数组,赋值给二维数组中第一个元素
arr[0] = new int[2];
//初始化一个元素个数为3个的一维数组,赋值给二维数组中第二个元素
arr[1] = new int[3];
//初始化一个元素个数为4个的一维数组,赋值给二维数组中第三个元素
arr[2] = new int[4];
System.out.println(arr); //输出的是二维数组本身的地址值
System.out.println(arr[0]); //输出的是二维数组中第一个一维数组的地址值
System.out.println(arr[1]); //输出的是二维数组中第二个一维数组的地址值
System.out.println(arr[2]); //输出的是二维数组中第三个一维数组的地址值
//获取二维数组中第二个一维数组中的第1个元素
System.out.println(arr[1][0])
}
}

格式3
/*
        二维数组定义的第三种格式:
            格式3:
            数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…},...};
        左边:
             数据类型:表示最终元素的数据类型
             [][]:表示是一个二维数组
             变量名:二维数组的名称
        右边:
            new:为二维数组在堆内存中开辟空间
            数据类型:表示的是最终每个一维数组中元素的数据类型
            [][]:表示的是一个二维数组
            {{元素…},{元素…},{元素…},...}:
                表示的是将来自定义多少个一维数组,以及每个一维数组中的元素个数也可以不一样
        举例:
            int[][] arr = new int[][]{{1,2},{11,22,33},{100,200,300},{10,20}};
            表示的是定义一个二维数组,二维数组中的元素是由4个一维数组组成,
            每个一维数组中的元素个数不一样。
            有点类似于一维数组的静态初始化,前两个格式有点类似于一维数组的动态初始化。
        简化格式:
            数据类型[][] 变量名 = {{元素…},{元素…},{元素…},...};
            举例:
                int[][] arr = {{1,2},{11,22,33},{100,200,300},{10,20}};
        错误的格式:
            不能和格式1,格式2混合使用
            int[][] arr = new int[3][]{{1,2},{11,22,33},{100,200,300},{10,20}};
 */
public class Array2Demo3 {
    public static void main(String[] args) {
        //使用二维数组定义格式2定义
        int[][] arr = {{1,2},{11,22,33},{100,200,300},{10,20,30,40}};
        System.out.println(arr); //输出二维数组本身的地址值
        System.out.println(arr[0]); //输出二维数组中第一个一维数组的地址值
        System.out.println(arr[1]); //输出二维数组中第二个一维数组的地址值
        System.out.println(arr[2]); //输出二维数组中第三个一维数组的地址值
        System.out.println(arr[3]); //输出二维数组中第四个一维数组的地址值
        //输出二维数组中第一个一维数组中的第一个元素值
        System.out.println(arr[0][0]);
        //输出二维数组中第一个一维数组中的第二个元素值
        System.out.println(arr[0][1]);
        //输出二维数组中第三个一维数组中的第一个元素值
        System.out.println(arr[2][0]);
        //输出二维数组中第四个一维数组中的第三个元素值
        System.out.println(arr[3][2]);
    }
}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/128323.html

(0)

相关推荐

  • playwrightpython教程(python中class教学)

    技术Python中Playwright怎么用这篇文章将为大家详细讲解有关Python中Playwright怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Playwright是Mi

    攻略 2021年12月20日
  • Difference between pem, crt, key files

    技术Difference between pem, crt, key files Difference between pem, crt, key filesDifference between pem

    礼包 2021年12月9日
  • dremio mysql arp 扩展

    技术dremio mysql arp 扩展 dremio mysql arp 扩展开发此arp 扩展的目的是增强dremio 对于类mysql 数据库的兼容(比如oceanbase。。。doris 暂时

    礼包 2021年11月18日
  • 汇编 | 8086 DEBUG调试学习笔记

    技术汇编 | 8086 DEBUG调试学习笔记 汇编 | 8086 DEBUG调试学习笔记在8086汇编中DEBUG是个非常实用的工具,并且可以非常明了的查看每一步指令每一个段的相对状态,有利于学习。下

    礼包 2021年11月13日
  • 如何解决win7注册表损坏导致无法引导启动问题

    技术如何解决win7注册表损坏导致无法引导启动问题这篇文章给大家分享的是有关如何解决win7注册表损坏导致无法引导启动问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。系统注册表损坏,用U盘启

    攻略 2021年11月17日
  • Python中多线程和多处理的分析

    技术Python中多线程和多处理的分析本篇内容主要讲解“Python中多线程和多处理的分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中多线程和多处理的分析”吧

    攻略 2021年11月3日