首页 > 编程知识 正文

java定义一个二维数组,java静态二维数组

时间:2023-05-03 05:14:34 阅读:146691 作者:1222

写这篇博客的原因是,从大学一年级开始学习c语言后就不知道二维数组的声明和初始化。 在学Java之前我不太清楚。

请先看看Java的基础问题

这个问题的错误选择是b。

二维数组初始化的两种方式我看到了很多网络博客,大部分都被称为三种初始化方式。 我这里可以把它分成两类,有不同想法的伙伴留言讨论。

什么是二维数组:

数组是存储数据的容器。 数组中存储的不是int,double .的类型,而是存储的数组。

数组中的元素还是数组,称为数组中的数组,也形成二维数组。 维度增加了一级。

简而言之,二维数组是指元素为一维数组的数组。

二维数组的第一初始化方式(静态初始化)静态初始化)显示初始化时程序员指定的每个数组元素的初始值,由系统决定数组长度

*1-1 int k[][]={{},{},{},{}; inta [ ] [ ]={ 1,2,3 } { 4,5,6 },{ 7,8,9,10 }; int b[][]={{},{2},{},{ 3,5 }; 如果直接分配值,则二维数组k内层的每组大括号都是一维数组。 如果有几对大括号,则k数组有几个一维数组。 例如,二维数组a有三个一维数组。 第一个和第二个一维数组的数组长度为3,第三个一维数组长度为4。 请尝试输出具体位数组的长度system.out.println(a[1].length )。 //3系统. out.println (b [2].length ); //0二维数组的第二种初始化方式(动态初始化)动态初始化)初始化时程序员只指定数组的长度,系统为数组元素分配初始值。

第二初始化方式int [][]k=new int[i][j]; *2-1int [ ] [ ] m=新int [3] [ ]; *2-2 int [][]n=new int[3][2]; 第二种初始化方式必须给二维阵列k的I这个位置赋值,但j这个位置可以赋值或为空。 结果产生了2-1和2-2这种不同的赋值方式。 稍后将从内存分配的角度讨论2-1和2-2之间的差异

深入挖掘数组(1)的定义。

1、数组是编程语言中最常见的数据结构,可以存储多种数据。

Java数组中所有数组元素都需要相同的数据类型。

2、数组是参考数据类型,数组变量只是参考,数组元素和数组变量分别存储在存储器中。

(二)初始化

1、静态初始化:初始化时显示程序员为每个数组元素指定的初始值,由系统决定数组长度。

2、动态初始化:初始化时程序员只指定数组长度,系统为数组元素指定初始值。

指定初始值时,系统按如下规则分配初始值:

类型初始值byte、short、int、long 0float、double 0.0 char‘ u 0000’boolean false类、接口、数组null http://www.Sina.com/3358

int [][]a={{},{},{},{};

inta [ ] [ ]={ 1,2 }、{ 3,4,5 }、{};

(三)数组在内存中存储

1. 静态初始化的存储方式

*2-1int [ ] [ ] a=新int [3] [ ]; 此代码定义变量a的二维数组,该数组指向长度为3的数组。 由于此数组的每个元素都是int类型的数组,因此默认值为null

*2-2

*2-2 int [][]a=new int[3][2]; 此代码定义了一个指向长度为3的数组的a数组变量,数组中的每个元素都指向长度为2的int[]数组,每个数组元素的值为0。

以上分析的代码验证如下

publicclasstestarray { publicstaticvoidmain (string [ ] args ) system.out.println('*******验证静态初始化二维数组系统. out.println (a; system.out.println(a[0]; system.out.println(a[1]; system.out.println(a[2]; for(int[]is:a ) (for ) intis2:is ) (system.out.print ) is2 ' ); }System.out.println (' '; //system.out.println(a[0] ); //exceptioninthread ' main ' Java.lang.arrayindexoutofboundsexception : system.out.println (---------) 系统. out.println (b ); system.out.println(b[0]; system.out.println(b[1]; system.out.println(b[2]; for(int[]is:b ) (for ) intis2:is ) (system.out.print ) is2 ' ); }System.out.println (' '; }system.out.println(*******动态初始化二维数组* * * * * * * * * * * * * * * (() * * * * * () ) ) ) ) ) 系统. out.println (c; system.out.println(c[0]; system.out.println(c[1]; 系统. out.println (c [2]; //exceptioninthread ' main ' Java.lang.nullpointerexception//for (int [ ] is : c )//for ) intis 23360 is/////system.out.println (* * * * * * * *2-2* * * * * * * * * * * * * ' ) ) ) ) ) ) ) ) ) 系统. out.println (d; system.out.println(d[0]; system.out.println(d[1]; system.out.println(d[2]; for(int[]is:d ) ) for (intis 2: is ) ) system.out.print (is2 ' ); }System.out.println (' '; }}输出结果如下

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。 [ I @ 15db 9742 (I @ 6d 06 d 69 c ) (I @ 7852 e922 (I @ 4e 25154 f-------------[ I @ 70 dea4e ] I @ 5c ) * * * * *

3359 blog.csdn.net/lxf 512666/article/details/52819906

3359 blog.csdn.net/qijingwang/article/details/83620602

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。