1.数组的基本概念
所谓的数组就是一组相关类型的集合,并且这些变量可以按照同意方式进行操作。数组本身又属于引用数据类型。
2.数组的动态初始化
数组的动态初始化为:数据类型[] 数组名称=new 数据类型[长度]
public class ArraryDemo01 {
public static void main(String[] args) {
// int[] nums;
//nums=new int[10];
int[] nums=new int[10];//也可以用上面方法来初始化
nums[0]=1;
nums[3]=6;
System.out.println("已经赋值的第四位为:"+nums[3]);
System.out.println("未赋值的第九位为:"+nums[8]);
int sum=0;
for(int i=0;i<nums.length;i++){
sum=sum+nums[i];
}
System.out.println("数组元素的和为:"+sum);
}
}
3.数组的静态初始化
简化形式: 数据类型[] 数组名称={值,值};
完整形式:数据类型[] 数组名称=new 数据类型[]{值,值};
int[] a={4,53,6,8,97,767};
System.out.println(a[1]);
此方法缺点为长度固定。
4.数组的空间开辟
应数组为引用数据类型,所以存在引用传递。
public class ArraryDemo07 {
public static void main(String args[]) {
int data[] = null;
data = new int[3]; //开辟一个长度为3的数组
int temp[] = null; //声明对象
data[0] = 10;
data[1] = 20;
data[2] = 30;
temp = data; //int temp[] = data;
temp[0] = 99;
for(int i = 0; i < temp.length; i++) {
System.out.println(data[i]);
}
}
}
结果为:99,20,30
int data[] = null;int temp[] = null;都是在栈内存中定义的,当temp[]实例化的时候开始在堆中分配数据,当temp=data;时temp也指向了堆内存。及同意块堆内存被不同的栈内存所指向。
5.数组封装成方法的参数
public class ArraryDemo04 {
public static void main(String[] args) {
int[] arrays={2,1,3,4,5};
//printArrary(arrays);
int[] reverse=reverse(arrays);
printArrary(reverse);
}
//数组也可以封装成方法的参数
//此方法为打印数组元素的代码
public static void printArrary(int[] arrays){
for(int i=0;i<arrays.length;i++){
System.out.print(arrays[i]+" ");
}
}
public static int[] reverse(int[] arrays){
int[] result=new int[arrays.length];
for (int i=0,j=result.length-1;i<arrays.length;i++,j--){
result[j]=arrays[i];
}
return result;
}
}
结果为:5 4 3 1 2
6.二维数组
二维数组本质就是行列集合,如果要确定一个数据可以通过行索引和列索引进行定位。
public class ArraryDemo05 {
public static void main(String[] args) {
int[][] arrary={{1,2},{3,4},{5,6},{7,8}};
printArrary(arrary[1]);
System.out.println(arrary[2][0]);
//多维数组的遍历
for (int i=0;i <arrary.length;i++){
for(int j=0;j<arrary[i].length;j++){
System.out.println(arrary[i][j]);
}
}
}
//此方法为打印数组元素的代码
public static void printArrary(int[] arrays){
for(int i=0;i<arrays.length;i++){
System.out.print(arrays[i]+" ");
}
}
}