package day6; public class SparseArray { static int sum=0; public static void main(String[] args) { //创建一个二维数组11*11,0旗子,1黑,2白 int[][] array1 = new int[11][11]; array1[1][2]=1; array1[2][4]=2; array1[3][4]=1; array1[4][6]=2; array1[4][9]=1; array1[6][9]=2; System.out.println("二维数组中有值的数:"+count(array1)+"个"); //创建一个稀疏数组 int[][] sparse=new int[sum+1][3]; sparse[0][0]=11; sparse[0][1]=11; sparse[0][2]=sum; //遍历二维数组将非零的数存放在稀疏数组中 int count=0; for (int i = 0; i <array1.length ; i++) { for (int j = 0; j <array1[i].length ; j++) { if (array1[i][j]!=0){ count++; sparse[count][0]=i; sparse[count][1]=j; sparse[count][2]=array1[i][j]; } } } //打印稀疏数组 for (int[] ints : sparse) { for (int anInt : ints) { System.out.print(anInt+"\t"); } System.out.println(); } } //打印原数组 public static void print(int[][] array){ // for (int i = 0; i < array.length; i++) { // for (int j = 0; j < array[i].length; j++) { // System.out.print(array[i][j]+"\t"); // } // System.out.println(); // // } for (int[] ints : array) { for (int anInt : ints) { System.out.print(anInt+"\t"); } System.out.println(); } } //计算有效值的个数 public static int count(int[][] array){ // int sum=0; for (int[] ints : array) { for (int anInt : ints) { if(anInt!=0){ sum++; } } } return sum; } }