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)

相关推荐

  • d13-接口和内部类

    技术d13-接口和内部类 d13-接口和内部类## 1.接口
    ### 1.1黑马信息管理系统集合改进 (应用)
    + 使用数组容器的弊端1. 容器长度是固定的,不能根据添加功能自动增长 2. 没有提供用

    礼包 2021年11月22日
  • 如何减压,什么方法可以让自已减压呢

    技术如何减压,什么方法可以让自已减压呢人生不如意事长八九,所以心理总会有烦恼,而且大多数是自己给自己找的,那就要调整自己的心态了。因为开门七件事如何减压:柴米油盐酱醋茶,每一件都可以使我们产生烦恼,更何况在世风日下的今天

    生活 2021年10月25日
  • 高脚蟹,刚刚死的螃蟹吃不完如何保存

    技术高脚蟹,刚刚死的螃蟹吃不完如何保存放冰箱的冷冻室冷冻起来,超市也卖那种冷冻的海鲜的。或者你可以腌制起来。不过死掉的螃蟹是不建议吃的。如果一次性买多了吃不了的话可以用以下方法保鲜高脚蟹:1、放在冰箱冷藏室内用湿毛巾盖上

    生活 2021年10月21日
  • jquery trim方法能去除哪些符号

    技术jquery trim方法能去除哪些符号这篇文章主要介绍“jquery trim方法能去除哪些符号”,在日常操作中,相信很多人在jquery trim方法能去除哪些符号问题上存在疑惑,小编查阅了各式资料,整理出简单好

    攻略 2021年11月15日
  • 4p理论,对4p营销理论怎么理解

    技术4p理论,对4p营销理论怎么理解4P营销理论4p理论:4P营销理论被归结为四个基本策略的组合,即产品(Product)、价格(Price)、渠道(Place)、促销(Promotion),由于这四个词的英文字头都是P

    生活 2021年10月28日
  • 如何理解MySQL limit导致的执行计划差异

    技术如何理解MySQL limit导致的执行计划差异本篇内容介绍了“如何理解MySQL limit导致的执行计划差异”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这

    攻略 2021年10月22日