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)

相关推荐

  • Java数据结构---稀疏数组

    技术Java数据结构---稀疏数组 Java数据结构---稀疏数组稀疏数值的基础概念(图示)◆当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。◆稀疏数组的处理方式是:◆记

    礼包 2021年11月25日
  • AspNetCore应用注意哪些点

    技术AspNetCore应用注意哪些点今天就跟大家聊聊有关AspNetCore应用注意哪些点,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。背景已经有很多文章记录了

    攻略 2021年11月18日
  • buu刷题笔记之sql注入

    技术buu刷题笔记之sql注入 buu刷题笔记之sql注入[强网杯 2019]随便注
    第一种方法:堆叠注入
    payload:1';or 1=1查看数据库:1';show databases;查看表名:1

    礼包 2021年10月19日
  • c语言socket编程流程(c语言socket编程怎么实现)

    技术如何使用C语言实现本地socke通讯这篇文章主要介绍了如何使用C语言实现本地socke通讯,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、概述  使

    攻略 2021年12月20日
  • vue和react给我的感受

    技术vue和react给我的感受 vue和react给我的感受以下纯属个人使用两个框架的感想和体会:不知道你们是否有这种感觉~我vue和react都用过一段时间,但是vue给我感觉就是经常会忘记语法,需

    礼包 2021年12月15日
  • 仿照Bootstrap的input如何修改upload上传图片的样式

    技术仿照Bootstrap的input如何修改upload上传图片的样式这篇文章将为大家详细讲解有关仿照Bootstrap的input如何修改upload上传图片的样式,小编觉得挺实用的,因此分享给大家做个参考,希望大家

    攻略 2021年11月19日