1.一维数组
1.1 数组的定义
使用数组的一般步骤:
① 声明数组:声明数组名称和元素的数据类型。
为了在程序中使用一个数组,必须声明一个引用该数组的变量,并指明整个变量可以引用的数组类型。声明一维数组的语法格式为:
elementType[] arrayName; // 数据类型[] 数组名;
elementType arrayName[]; // 数据类型 数组名[];
可见数组的声明有两种形式:一种是中括号”[]“跟在元素数据类型之后,另一种是中括号”[]“跟在变量名之后。elementType作为数据类型可以是基本数据类型(例:int,double,boolean,char)还可以是引用数据类型(例String,Array);arrayName为数组名,它是个引用变量;方括号指明变量为数组变量,可以放在数组名后也可以放在数组名前,推荐放在数组名前。
double[] grade; //存储学生成绩,浮点型
String[] word; //存储单词,字符串型
上面声明的数组,他们的元素类型分别为double型和String型,在Java语言中数组是引用数据类型,也就是说数组是一个对象,数组名就是对象名,数组声明实际上就是声明一个引用变量,如果数组元素为引用类型,则该数组称为对象数组,如上面word就是对象数组所有数据都继承了object类(终极父类),因此可以调用object类的所有方法。
注意:赋值语句不能出现在方法外
在声明数组时不需要规定数组的长度,例如:
int a[10]; //错误
注意:在声明数组变量时千万不要漏写[]。
②创建数组和初始化:为数组元素分配空间和数组元素赋值。
1.动态初始化:
数据类型[] 数组名=new 数据类型[] { }
2.静态初始化:
数据类型[] 数组名=new 数组类型[数组长度];
数据类型[] 数组名={ };
注意:只分配了内存,但没有进行赋值只有默认值 “ 0 ”。
分配空间
声明了数组,只是得到了一个存放数组的变量,并没有为数组元素分配内存空间,不能使用。因此要为数组分配内存空间,这样数组的每一个元素才有一个空间进行存储。
分配空间就是要告诉计算机在内存中为它分配几个连续的位置来存储数据。在 Java 中可以使用 new 关键字来给数组分配空间。
例如:声明并分配一个长度为 5 的 int 类型数组 arr,代码如下:
- int[] arr = new int[5];
执行后 arr 数组在内存中的格式如图 。
访问数组
1.访问数组元素
声明了一个数组,并使用new运算符为数组元素分配内存空间后,就可以使用数组中的每一个元素。数组元素的使用方式是:
arrayName [index];
其中,index为数组元素下标或索引,下标从0开始,到数组的长度减1。例如,上面定义的words数组定义了三个元素,所以只能使用words[0]、words[1]和words[2]这三个元素。数组一经创建大小不能改变。数组作为对象提供了一个length成员变量,它表示数组元素的个数,访问该成员变量的方法为arrayName.length。下面程序演示了数组的使用和length成员的使用。
package com.demo;
public class ArrayDemo{
public static void main(String[] args){
double[] marks=new double[5];
mark[0]=79;
mark[1]=84.5;
mark[2]=99;
mark[3]=98;
mark[4]=94;
System.out.println(mark[2]);
System.out.println(mark.length);
for(int i=1;i<mark.length;i++){
System.out.println(mark[i]+" ");
}
}
}
//运行结果为:
63
5
79.0 54.5 99.0 98.0 94.0
2.增强for循环
如果程序只需顺序访问数组中每个元素,可以使用增强的for循环,它是Java5新增功能。增强的for循环可以用来迭代数组和对象集合的每个元素。它的一般格式为:
for(type identifier:expression) { //循环体 }
该循环的含义为:对expression(数组或集合)中的每个元素identifier,执行一次循环本中的语句,这里type为数组或集合中的元素类型;expression必须是一个数组或集合对象。
下面使用增强的for循环实现求数组marks中各元素的和,代码如下
double sum=0;
for(double score: mark){
sum=sum+score;
}
System.out.println("总成绩="+sum);
2.二维数组
1.1 二维数组的定义
使用二维数组的一般步骤:
① 声明二维数组:
在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。
elementType[][] arrayName;
elementType[] arrayName[];
elementType arrayName[][];
其中,elementType 表示二维数组的类型,arrayName表示数组名称,第一个中括号表示行,第二个中括号表示列。
②创建二维数组和初始化:为二维数组元素分配空间和元素赋值。
数据类型[] 变量名=new 数据类型[m][n];
例如:
创建了一个二行二列的二维数组 temp,并对数组中的元素进行了初始化
int[][] temp;
temp[][]=new int[][];
temp[2][2]={1,2},
{3,4};
temp二维数组的内存结构:
二维数组实例1:矩阵乘法
package com.demo;
public class MatrixMultipiy{
public static void main(String[] args){
int a[][]={{1,2,1},{-2,4,1}};
int b[][]={{4,3,0,-1},{2,3,5,2},{1,0,6,3}};
int c[][]=new int[2][4];
for(int i=0;i<2;i++){
for(int j=0;j<4;j++)
for(int k=0;k<3;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
for(int i=0;i<2;i++){
for(int j=0;j<4;j++)
System.out.println(c[i][j]+" ");
System.out.println();
}
}
}
//运行结果为:
9 9 16 6
1 6 26 13