数组元素分配、数组初始化、数组引用

数组指:相同类型的变量按一定顺序组成的一种复合函数类型,而这些相同类型的变量称为数组的元素或单元;

特点:

1、数组的创建需要经过两个步骤:声明数组、为数组分配变量;

2、数组通过数组名加索引来使用数组的元素;如:a[2]

3、数组属于引用型变量;

数组声明(只是声明,并没有进行元素的分配)

一维数组声明有两种形式:

1、int a[],b[],c[] ; 

2、int [] a,b,c[] ;   //其中c为二维数组:语句相当于  int a[],b[],c[][] ;

二维数组声明有两种形式:

1、int a[][],b[][],c[][] ; 

2、int [][] a,b,c[] ;   //其中c为三维数组:语句相当于  int a[][],b[][],c[][][];

上面第2种形式的声明中,可以同时声明一维、二维或多维数组;

数组元素的分配(以一维数组进行演示)

数组元素的分配有两种方式实现:

1、先进行数组的声明,再进行数组元素的分配;

     int test[] ;            //声明一个数组test;

     test = new int [10] ;  //为数组test分配了十个元素个数

2、在声明数组的同时进行元素的分配;

     int test[] = new int[3];  //声明一个数组test,并为其分配了三个元素个数

* 二维数组的声明和一维数组是一样的;

需要注意的是:

int test[] ;            //声明一个数组test;

test[] = new int [10] ;  //为数组test分配了十个元素个数

这样子是错误的,程序报错:The left-hand side of an assignment must be a variable 

原因:

数组是通过数组名加索引来进行使用的,当使用test[] = new int [10] ;  时报错,是因为此时的test[]

是一个没有类型的数据,系统是不能对其进行解析的,所以需要通过数组名进行new,系统才能进行解析并分配数组元素;

对数组元素进行赋值,使用

test [0] = 1 ; test [2] = 11 ; test [3] = 111 ; test [4] = 111 ;

而没有进行赋值的数组元素默认是:0 ;    

对于二维数组是:

int ss[][] = new int[3][3];

ss[1][1] = 1 ; ss[2][2] = 1 ; ss[3][3] = 1 ;

数组初始化:(声明数组的同时进行元素的分配并进行赋值

一维数组:

double arrayone[] = {12.2 , 33.3 , 45.5 , 65.6} ;

二维数组:

double arraytwo[][] ={ { 12.2 , 33.3 , 45.5 , 65.6 } ,{ 2.2 , 3.3 , 5.5 , 6.6 } };

查看数组的长度:length ;

数组的长度指:数组元素的个数 ;

对于一维数组:“数组名.length”输出的值就是该数组的长度,也是该数组元素的个数;

如:int test [] = new int[5];   System.out.println(test.length);    //输出5,即该一维数组的长度、元素个数是5

对于二维数组:“数组名.length”输出的值就是二维数组中所包含的一维数组的个数

如:int test1 [][] = new int[2][3] ;

System.out.println(test1.length);    //输出2,即该二维数组中一维数组的个数是2

System.out.println(test1[0].length);    //输出3,即该二维数组中每个一维数组的长度、元素个数是3

System.out.println(test1[1].length);    // 与 test1[0].length 一样输出3;范围是不能超过1,看一维的长度;

需要注意的是:

使用length时,数组长度是从1开始算起的;如上面的 test1.length 、test1[0].length 所输出的值

而在使用数组名加索引时,数组是从0开始算起的;如上面的 test1[0] 、test1[1]

数组的引用:

输出一维数组的引用:

int test[] = {2,5,6,4,7};  

System.out.println(test);   //结果输出一维数组test的引用

输出二维数组的引用:

int testont[][] = {{2,3,5,4},{2,9,8,7},{1,5,6,4},{1,2,7,4}};

System.out.println(testont);    //结果输出二维数组testont的引用

输出二维数组中一维数组的引用:

System.out.println(testont[0]);    //结果输出二维数组中一维数组testont[0]的引用

System.out.println(testont[1]);    //结果输出二维数组中一维数组testont[1]的引用

注意:testont[0] 、testont[1] 输出的引用是不一样的

数组引用的赋值:

        int test[] = {2,5,6,4,7};
        int tests[] = {3,5,7,6,8};
        System.out.println(test);                //输出引用不一样
        System.out.println(tests+"\n");     //输出引用不一样
        test = tests ;
        System.out.println(test);               //输出引用一样
        System.out.println(tests+"\n");     //输出引用一样

相对于char类型的数组,在输出引用时要和字符串进行并置运算,才能进行输出;

如:char test2[] = {'h','和','1','5','!'} ;

在使用 System.out.println(test2 );   // 输出的结果并不是test2的引用,而是 h和15!

使用:System.out.println(""+test2 );   // 输出test2的引用

发布了25 篇原创文章 · 获赞 7 · 访问量 2776

猜你喜欢

转载自blog.csdn.net/LagerSwan/article/details/104072756