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)

相关推荐

  • 24Django装饰器整体缓存的一种玩法

    技术24Django装饰器整体缓存的一种玩法 24Django装饰器整体缓存的一种玩法一,Django设置缓存的三种类型:#将数据缓存到表里
    CACHE={'default':{'BACKEND':'d

    礼包 2021年12月6日
  • 无底洞打一成语是什么成语,求几个谜底为成语的谜语!

    技术无底洞打一成语是什么成语,求几个谜底为成语的谜语!呀(打一成语)。 谜底无底洞打一成语是什么成语:唇齿相依 板(打一成语)。 谜底:残茶剩饭
    咄(打一成语)。 谜底:脱口而出
    票(打一成语)。 谜底:闻风

    生活 2021年10月28日
  • 怎么用树莓派来做下载机

    技术怎么用树莓派来做下载机这篇文章主要介绍了怎么用树莓派来做下载机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 树莓派做下载机的优点就是功耗小,2

    攻略 2021年11月20日
  • 从Python转到Go语言理由有哪些

    技术从Python转到Go语言理由有哪些本篇内容介绍了“从Python转到Go语言理由有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

    攻略 2021年12月1日
  • 如何配置Hibernate

    技术如何配置Hibernate本篇内容主要讲解“如何配置Hibernate”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何配置Hibernate”吧!当我们有了一个持久化类

    攻略 2021年12月4日
  • 如何使用Python进行社交媒体情感分析

    技术如何使用Python进行社交媒体情感分析这篇文章给大家介绍如何使用Python进行社交媒体情感分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。学习自然语言处理的基础知识并探索两个有用的 Pyt

    攻略 2021年10月26日