指明该变量是一个数组类型变量。例如: int intArray[]; 声明了一个整型数组,数组中的每个元素为整型数据。与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不用指出数组中元素个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。我们必须为它分配内存空间,这时要用到运算符new,其格式如下: arrayName=new type[arraySize]; 其中,arraySize指明数组的长度。如: intArray=new int[3];
一维数组的初始化 对数组元素可以按照上述的例子进行赋值。也可以在定义数组的同时进行初始化。 例如:int a[]={1,2,3,4,5};一维数组程序举例: 例5.2Fibonacci数列 Fibonacci数列的定义为: F1=F2=1,Fn=Fn-1+Fn-2(n>=3) public classFibonacci{ public static void main(String args[]){ int i; int f[]=new int[10]; f[0]=f[1]=1; for(i=2;i<10;i++) f[i]=f[i-1]+f[i-2]; for(i=1;i<=10;i++) System.out.println("F["+i+"]="+f[i-1]); } } 运行结果为: C:\>java Fibonacci F[1]=1 F[2]=1 F[3]=2 F[4]=3 F[5]=5 F[6]=8 F[7]=13 F[8]=21 F[9]=34 F[10]=55 例5.3冒泡法排序(从小到大) 冒泡法排序对相邻的两个元素进行比较,并把小的元素交到前面。 public class BubbleSort{ public static void main(String args[]){ int i,j; int intArray[]={30,1,-9,70,25}; int l=intArray.length; for(i=0;i<l-1;i++) for(j=i+1;j<l;j++) if(intArray[i]>intArray[j]){ int t=intArray[i]; intArray[i]=intArray[j]; intArray[j]=t; } for(i=0;i<l;i++) System.out.println(intArray[i]+""); } }二维数组的定义方式为: type arrayName[][]; 例如: int intArray[][]; 与一维数组一样,这时对数组元素也没有分配内存空间,同要使用运算符new来分配内存,然后才可以访问每个元素。 对高维数组来说,分配内存空间有下面几种方法: 1直接为每一维分配空间,如: int a[][]=new int[2][3]; 2从最高维开始,分别为每一维分配空间,如: int a[][]=new int[2][]; a[0]=new int[3]; a[1]=new int[3];1直接对每个元素进行赋值。 2在定义数组的同时进行初始化。 如:int a[][]={{2,3},{1,5},{3,4}};例5.4矩阵相乘 两个矩阵Am×n、Bn×l相乘得到Cm×l,每个元素Cij=?aik*bk (i=1..m,n=1..n) public class MatrixMultiply{ public static void main(String args[]){ int i,j,k; int a[][]=new int[2][3]; int b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}}; int c[][]=new int[2][4]; for(i=0;i<2;i++) for(j=0;j<3;j++) a[i][j]=(i+1)*(j+2); for(i=0;i<2;i++){ for(j=0;j<4;j++){ c[i][j]=0; for(k=0;k<3;k++) c[i][j]+=a[i][k]*b[k][j]; } } System.out.println("\n***MatrixA***"); for(i=0;i<2;i++){ for(j=0;j<3;j++) System.out.print(a[i][j]+""); System.out.println(); } System.out.println("\n***MatrixB***"); for(i=0;i<3;i++){ for(j=0;j<4;j++) System.out.print(b[i][j]+""); System.out.println(); } System.out.println("\n***MatrixC***"); for(i=0;i<2;i++){ for(j=0;j<4;j++) System.out.print(c[i][j]+""); System.out.println(); } } }
//定义二维数组写法1
class numthree
{
public static void main(String[] args)
{
float[][]numthree;
numthree=newfloat[5][5];
numthree[0][0]=1.1f;
numthree[1][0]=1.2f;
numthree[2][0]=1.3f;
numthree[3][0]=1.4f;
numthree[4][0]=1.5f;
System.out.println(numthree[0][0]); //打印换行输出喽
System.out.println(numthree[1][0]);
System.out.println(numthree[2][0]);
System.out.println(numthree[3][0]);
System.out.println(numthree[4][0]);
}
}
//定义二维数组写法2
class numfour
{
public static void main(String[] args)
{
}
}
//定义二维数组写法3
class numfive
{
public static void main(String[] args)
{
long[][] numfive=newlong[5][];
numfive[0]=newlong[5];
numfive[1]=newlong[6];
numfive[2]=newlong[7];
numfive[3]=newlong[8];
numfive[4]=newlong[9];
numfive[0][4]=10000000000L;
numfive[1][5]=20000000000L;
numfive[2][6]=30000000000L;
numfive[3][7]=40000000000L;
numfive[4][8]=50000000000L;
System.out.println(numfive[0][4]);//打印换行输出喽
System.out.println(numfive[1][5]);
System.out.println(numfive[2][6]);
System.out.println(numfive[3][7]);
System.out.println(numfive[4][8]);
System.out.println(numfive[4][7]); //打印输出一个没有定义数组元素的数组java会自动将他初始化值为0
}
}
//定义2维数组写法4
class numsix
{
public static void main(String[] args)
{
double[][]numsix={{1.111D,2.222D,3.333D},{4.444D,5.555D,6.666D}};//定义double型的数组分配3行3列的空间同时赋值
System.out.println(numsix[0][0]); //打印换行输出1行1列=1.111
System.out.println(numsix[1][1]); //打印换行输出2行2列=5.555
}
}
//定义2维数组写法5
class numseven
{
public static void main(String[] args)
{
int[][] numseven=new int[][]{{10,20,30},{40,50},{60}};//没什么好说的如果你在看不懂 那就别学了!
System.out.println(numseven[0][2]);
System.out.println(numseven[1][1]);
System.out.println(numseven[0][0]);
}
}
//定义2维数组写法6 定义不规则的2维数组同时赋初始值;
class numeight
{
public static void main(String[] args)
{
int[][]numeight={{100,200,300,400},{500,600,700,800},{900,1000,1100,1200,1300}};
System.out.println(numeight[0][2]);
System.out.println(numeight[1][2]);
System.out.println(numeight[2][1]);
}
}