数组的定义
数组的定义和变量的定义类似。
publicclassMain{publicstaticvoidmain(String[]args){inta[]=newint[10];float[]f=newfloat[33];double[]d=newdouble[123];char[]c=newchar[21];//这里的方括号也可以像c++ int a[]}}数组的初始化
数组初始化其实就是在定义的时候直接给数组赋值。
比如:
int[]a={0,1,2};// 含有3个元素的数组,元素分别是0, 1, 2int[]b=newint[3];// 含有3个元素的数组,元素的值均为0char[]d={'a','b','c'};// 字符数组的初始化数组元素访问
在数组元素访问时通过索引(下标)访问,数组下标从 0 开始。
比如:
publicclassMain{publicstaticvoidmain(String[]args){inta[]={1,2,3};System.out.printf("%d %d %d",a[0],a[1],a[2]);}}数组的遍历
也可以像 c++一样通过 for 循环去遍历访问数组。
for(int[]row:a){for(intx:row)System.out.printf("%d ",x);System.out.println();}多维数组
多维数组和 C++中也一样。
publicclassMain{publicstaticvoidmain(String[]args){int[][]a=newint[3][4];// 大小为3的数组,每个元素是含有4个整数的数组。int[][][]b=newint[10][20][30];// 将所有元素的初值为0// 大小为10的数组,它的每个元素是含有20个数组的数组// 这些数组的元素是含有30个整数的数组}}方法
数组本身的方法很少。常用的如下:
属性length:返回数组长度,注意不加小括号Arrays.sort ():数组排序Arrays.fill (int[] a, int val):填充数组Arrays.toString ():将数组转化为字符串Arrays.deepToString ():将多维数组转化为字符串
数组不可变长
使用Arrays需要import java. util. Arrays。
蛇形矩阵
最后写一个蛇形矩阵的题的代码。
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){intn,m;Scannersc=newScanner(System.in);n=sc.nextInt();m=sc.nextInt();int[][]a=newint[n][m];int[]dx={0,1,0,-1},dy={1,0,-1,0};//对应右下左上for(inti=1,x=0,y=0,d=0;i<=n*m;i++){a[x][y]=i;intxx=x+dx[d],yy=y+dy[d];if(xx<0||yy<0||xx>=n||yy>=m||a[xx][yy]!=0){d=(d+1)%4;xx=x+dx[d];yy=y+dy[d];}x=xx;y=yy;}for(inti=0;i<n;i++){for(intj=0;j<m;j++)System.out.print(a[i][j]+" ");System.out.println("");}}}