二维数组
一维数00组的集合,二维数组可以由多个一维数组构成
二维数组的创建
int [][] a;(推荐使用)
int a2[][];
直接创建 int[][] a= new int[x][(可以不进行定义也可以定义)];
int[][] a={{1,2},{1,2}};
int [][]a = new int[][]{{1,2,3},{1,2,3},{1,2,3}};
二维数组的迭代;
int [][] b1 = new int [][]{{1,2},{3,4}};
for(int i =0;i<b1.length;i++){
for(int j =0;j<b1[i].length;j++){
System.out.print(b1[i][j]);
}
}
二维数组转化为稀疏数组
代码实现
package Day16Class;
public class XiShuArray {
public static void main(String[] args) {
int[][] a=new int[15][15];
a[0][1]=4;
a[0][6]=6;
a[2][3]=7;
int sum=0;
//确定稀疏数组的列数
for (int i = 0; i <a.length ; i++) {
for (int j = 0; j <a[i].length ; j++) {
if(a[i][j]!=0) {
sum++;
}
}
}
//定义稀疏数组
int[][] xishu=new int[sum+1][3];
xishu[0][0]=15;
xishu[0][1]=15;
xishu[0][2]=sum;
//输出稀疏数组
int temp=1;
for (int i = 0; i <a.length ; i++) {
for (int j = 0; j <a[i].length ; j++) {
if(a[i][j]!=0) {
xishu[temp][0]=i;
xishu[temp][1]=j;
xishu[temp][2]=a[i][j];
temp++;
}
}
}
for (int i = 0; i <xishu.length ; i++) {
for (int j = 0; j <xishu[i].length ; j++) {
System.out.print(xishu[i][j]+"\t");
}
System.out.println();
}
//把稀疏数组转换成正常的二维数组
int[][] a1=new int[xishu[0][0]][xishu[0][1]];
for (int i = 1; i <xishu.length ; i++) {
a1[xishu[i][0]][xishu[i][1]]=xishu[i][2];
}
for (int i = 0; i < a1.length ; i++) {
for (int j = 0; j <a1[i].length ; j++) {
System.out.print(a1[i][j]+"\t");
}
System.out.println();
}
}
}