例如:
现在要定义100个整型变量:i1、i2…i100,所以在此情况下一般都可以建立数组,通过数组完成此种变量的定义。数组:数组就是一组相关变量的集合。每个数组总的元素类型都是一样的。
定义包含10个元素的整型数组:
类型 数组名称[] ;、类型[] 数组名称 ; à 定义了一个数组
为数组开辟空间大小的格式:
数组名称 = new 类型[大小] ;
public class Demo18{
public static void main(String args[]){
//
定义
100
个元素的整型数组
//
数组的初始值最好是
null
//
如果数组为
null
,则表示暂时还无法使用
int i[] = null ;
//
为数组开辟使用大小
i = new int[10] ;
//
访问数组,通过数组名
[
下标
]
//
下标从
0
开始,即,如果是
10
个元素,则下标范围是
0~9
System.out.println(i[9]) ;
}
};
|
此时数组中的每个元素都是int的默认值 —— “0”。
一般数组的内容输出都是使用for循环完成的,因为已经明确的知道了数组的长度了。所以输出的时候就可以使用for循环完成。
public class Demo19{
public static void main(String args[]){
//
定义
100
个元素的整型数组
//
数组的初始值最好是
null
//
如果数组为
null
,则表示暂时还无法使用
int i[] = null ;
//
为数组开辟使用大小
i = new int[10] ;
//
访问数组,通过数组名
[
下标
]
//
下标从
0
开始,即,如果是
10
个元素,则下标范围是
0~9
//
动态的取得数组长度的操作:数组名称
.length
//
也可以通过循环为数组中的每个元素赋值
//
现在按以下格式为数组中的内容初始化:
i[0] = 0
、
i[1] = 1
,依次类推
//
此种初始化,称为动态初始化
for(int x=0;x<i.length;x++){
i[x] = x ;
}
for(int x=0;x<i.length;x++){
System.out.print("i["+x+"] = "+i[x]+"\t") ;
}
}
};
|
回顾:
Java中数组属于引用类型,所以,只要是引用数据类型都会牵扯到内存地址的分配问题,在java中通过new关键字为数组分配空间。
如果声明了一个数组(int i[]),则数组名称会保存在栈内存里,此时的数组,没有大小,不能使用,如果使用则肯定出错。
之后通过new关键字,在堆内存中为数组开辟空间,同时把空间的使用权给了数组名称。空间中的每个元素都是默认值,整数的为“0”;
数组的使用规律:
· 先为数组在栈内存中开辟空间
· 再通过new关键字,为数组在堆内存中开辟元素的大小
· 之后才可以使用数组(因为已经存在堆内存空间了)。
现在的开发中基本上都是使用一维数组,多维数组使用较少。
public class Demo21{
public static void main(String args[]){
int i[][] = null ;
i = new int[2][3] ;
for(int x=0;x<i.length;x++){
for(int y=0;y<i[x].length;y++){
i[x][y] = x*y ;
}
}
for(int x=0;x<i.length;x++){
for(int y=0;y<i[x].length;y++){
System.out.print("i["+x+"]["+y+"] = "+i[x][y]+"\t") ;
}
}
}
};
|
一维数组的静态初始化,之前所讲解的全部数组都属于动态初始化,即:为数组开辟空间的时候,没有为其指定内容,而是之后通过代码赋上内容的,所以此操作称为动态初始化。
静态初始化就是在数组声明的时候直接给出值。
public class Demo22{
public static void main(String args[]){
int i[] = {1,2,3,4,5,6,7,8,9,0} ;
for(int x=0;x<i.length;x++){
System.out.print("i["+x+"] = "+i[x]+"\t") ;
}
}
};
|
本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/91226,如需转载请自行联系原作者