数组的基本概念:
如果说现在要定义100个整形变量,那么按照传统的做法,实现如:int i1,i2,i3,...
这种方式可以定义,但在维护时考虑到一组变量的整体维护,专门创建一组相关变量的集合,在java里为了将数组定义为引用数据类型,可以使用new关键字处理;
1.数组的动态初始化:
-声明并初始化数组:数据类型 数组名称[] = new 数据类型[长度];
-声明并初始化数组:数据类型 [] 数组名称 = new 数据类型[长度];
2.数组的静态初始化:在数组定义时为其设置好了里面内容:
-简化格式:数据类型 数组名称[] = {数据1,数据2,数据3...};
-完整格式:数据类型 数组名称[] = new 数据类型[]{数据1,数据2,数据3...};
当创建了一个数组后可以按照如下的方式访问:
数组里面可以通过脚标进行每一个元素的访问,脚标从0开始定义;
数组脚标范围为:0 - length-1
对于数组的长度也可以使用 数组名.length 属性获取
数组本身分为动态初始化和静态初始化,动态初始化时数组中每个元素都是其对应数据类型的默认值,随后可以通过下标为数组进行元素值得设置,也可以直接使用静态初始化为数组赋值。
范例:定义数组:
动态初始化:int a[] = new int[3];
静态初始化: int a[] = new int[]{1,2,3};
数组的引用传递:
通过数组的基本定义可以发现,在数组使用的过程中依然需要通过关键字new进行内存空间的开辟。
由于数组属于引用类型,所以一定要在为其开辟堆内存空间才能使用,否则抛出NullPointerException异常。(必须实例化才能进行其他操作)
foreach迭代输出:
JDK1.5后,为了减轻数组下标对数组的影响(下标处理不当则导致数组下标越界),出现了增强型的foreach循环,利用foreach可以自动访问数组里的每个元素,避免了数组进行下标访问。
for(数据类型 变量:数组 | 集合){}
可以自动得将数组里的每一个元素取出来保存在变量里面,防止数组进行下标访问。
int a = new int[]{1,2,3}
for(int i =1;i < a.length; i++){
system.out.println(i);
}
##
for(int temp:a){
system.out.println(temp);
}
二维数组:
二维数组得动态初始化:
数据类型 数组名称 = new 数据类型[行个数][列个数]
二维数组得动态初始化:
数据类型 数组名称 = new 数据类型[][]{{数据,数据,数据,...},{数据,数据,数据,...},{数据,数据,数据,...}..}
数组与方法:
对于引用数据类型而言,主要得特点是可以进行与方法进行引用传递,而数组本身也属于引用类型,所以也可以通过方法实现引用传递得操作。
例子:实现数组得引用传递
public static void main(String[] args){
int arr = new int[]{1,2,3};
PrintArray(arr);
}
public static void PrintArray(int temp[]){
for(i=0;i<temp.length;i++){
sysout(temp[i]);
}
}
public static int[] NewArr(){
int arr[] = new int[]{1,2,3,4,5};
return arr;//返回数组
}
既然可以定义方法来接受一个数组作为参数,也可以通过方法返回一个数组对象,对方法得返回值进行控制即可