package com.baidu.数组; public class Demo转换数组练习1 { public static void main(String[] args) { int array1[][] = new int[10][9]; array1[1][7] = 7; array1[1][8] = 17; array1[2][8] = 27; array1[9][8] = 77; array1[2][7] = 97; array1[3][5] = 107; array1[4][6] = 57; array1[5][1] = 77; array1[9][2] = 37; array1[0][3] = 678; int sum1 = 0;//总行数 int sum2 = 0;//总列数 int count = 0;//有效值的总个数 sum1=array1.length; System.out.println("array1数组为:"); for (int i = 0; i < array1.length; i++) { for (int j = 0; j < array1[i].length; j++) { if (array1[i][j]!=0) { count++; } System.out.print(array1[i][j]+"\t"); } System.out.println(); sum2 = array1[i].length; } System.out.println("array1的总行数是:"+sum1); System.out.println("array1的总列数是:"+sum2); System.out.println("有效值的总个数"+count); int array2[][] = new int[count+1][3]; array2[0][0]=sum1; array2[0][1]=sum2; array2[0][2]=count; int sum3 =0; for (int i = 0; i < array1.length; i++) { for (int j = 0; j < array1[i].length; j++) { if(array1[i][j]!=0) { sum3++; array2[sum3][0]=i; array2[sum3][1]=j; array2[sum3][2]=array1[i][j]; } } } System.out.println("输出array1的稀疏数组array2:"); for (int[] ints : array2) { for (int anInt : ints) { System.out.print(anInt+"\t"); } System.out.println(); } } }
//输出结果为: /* array1数组为: 0 0 0 678 0 0 0 0 0 0 0 0 0 0 0 0 7 17 0 0 0 0 0 0 0 97 27 0 0 0 0 0 107 0 0 0 0 0 0 0 0 0 57 0 0 0 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 77 array1的总行数是:10 array1的总列数是:9 有效值的总个数10 输出array1的稀疏数组array2: 10 9 10 0 3 678 1 7 7 1 8 17 2 7 97 2 8 27 3 5 107 4 6 57 5 1 77 9 2 37 9 8 77 */