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)

相关推荐

  • 飞的最远的纸飞机折法,怎样折纸飞机飞得最远视频

    技术飞的最远的纸飞机折法,怎样折纸飞机飞得最远视频01 叠纸飞机有很多种方法飞的最远的纸飞机折法。 下面的这种,性能相对比较好。 飞的既稳又远。
    02
    叠法简介:
    1.将A4纸竖着对折。
    03
    将A4纸的一端

    生活 2021年10月24日
  • 怎么理解Java悲观锁与乐观锁

    技术怎么理解Java悲观锁与乐观锁本篇内容介绍了“怎么理解Java悲观锁与乐观锁”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年11月18日
  • 凯撒密码对应表,凯撒密码求编程。语言不限

    技术凯撒密码对应表,凯撒密码求编程。语言不限凯撒加密是最简单的加密,就是 把字符移动n位, 例如 凯撒密码对应表:移动1位时,a就用b表示,f用e表示。#includeint main(void){

    生活 2021年10月25日
  • 抖音刷双击秒刷,如何选择优质的刷赞平台

    技术抖音刷双击秒刷,如何选择优质的刷赞平台抖音的粉丝在哪儿买?怎样可以增加抖音的点赞和粉丝?现在很多人都喜欢抖音短视频,这段时间里,抖音很火,抖音挑战赛开始后,参与人数很多。每个人都在想如何才能拍出高质量的视频,观看量,

    测评 2021年10月21日
  • Javascript中DOM、节点和获取元素的示例分析

    技术Javascript中DOM、节点和获取元素的示例分析这篇文章给大家分享的是有关Javascript中DOM、节点和获取元素的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。DOM文

    攻略 2021年11月2日
  • SQL Server 2016的数据库范围内的配置是怎样的

    技术SQL Server 2016的数据库范围内的配置是怎样的本篇文章为大家展示了SQL Server 2016的数据库范围内的配置是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有

    攻略 2021年11月30日