1 パブリック クラスSparseArray { 2 。3 // 疎なアレイに二次元アレイ 。4 パブリック 静的 ボイドTwoArrayToSparseArray(){ 5は、 // 元の2次元アレイが変換される定義 6。 INT [] [] = originalArray 新しい新しい INT [11] [11。]と、 図7 // 二次元アレイにアナログデータが格納されている 8。 originalArray [3] = 1 [4]。 。 。9 originalArray [6] = 2 [7] ; 10 // 二次元アレイの数が疎なアレイを作成するために得られた異なる値を横断します 11 int型 COUNT = 0; // の個別値の数を記録 12である ため(INT [] INTS:originalArray){ 13がある ため(INTのアイテム:INTS){ 14 IF(項目!= 0 ){ 15 COUNT ++ ; 16 } 17 } 18である } 19 20である // 、疎なアレイフォーマットがNである疎な配列を作成+ 1固定ライン3 21 @ 元の配列保存された行の最初の列の元の配列格納された値の第3列に格納された元の配列の2列目には異なる番号 22の // 元の配列の最初の行を格納するための疎な配列行と列との異なる値の数 23の // 残りのN行は、異なる値に対する格納された値の行ごとに異なる値と異なる行の数に依存 24 のint [] [] = SparseArray 新しい新しい INT [カウント+ 1] [3]; 25 26である 。// ランクの数と疎な配列の最初の行に元の配列の異なる値を割り当て 27 SparseArray [0] [0] = originalArray.length; 28 SparseArray [0] [1] = originalArray [0 ]。長さ; 29 SparseArray [0] [2] = COUNT; 30 31である // ラインにより、データ線を保持疎アレイはインデックスにインクリメントされ、第2行目から始まるので、最初の行が追加された 32 のint = 1指数; 33は 34であり 、// 元の配列を反復しますデータストア 35は、 のために(int型 I = 0;私は<originalArray.length; Iは++ ){ 36 のために(INT J = 0; J <originalArray.length; J ++ ){ 37 IF(originalArray [I]、[J]!= 0 ){ 38である // 疎な配列の最初の列に異なる値の割り当てを見つけることは、元の行の第2列のアレイであるアレイの元の列れる 39 // 3番目の列は、元の配列と異なっています値は索引付けされた増分である 40 [0] = SparseArray [インデックス] Iは、 41である SparseArray [インデックス] [1] = J; 42は SparseArray [インデックス] [2] = originalArray [I]、[J]; 43である 、インデックス++ ; 44れます } 45 } 46である } 47 48 のSystem.out.println( "プリントは2次元配列から疎な配列変換を完了" ); 49 //疎なアレイプリント 50の ための(INT I = 0; I <sparseArray.length; I ++は){ 51で のSystem.out.println(SparseArray [I] [0] + "\ T" + SparseArray [I] +「\ [1] T "+ SparseArray [I] [2] +" \ T " ); 52である } 53である } 54は、 55 // 疎なアレイは、2次元アレイ変換 56は パブリック 静的 ボイドSparseArrayToTwoArray(){ される57 // 疎なアレイの作成 58 のint []を[ ] = SparseArray 新しい新しい INT [3] [3。]; 59の // アナログデータ 60 SparseArray [0] [0] = 11 ; 61は SparseArray [0] [1] = 11 ; 62は SparseArray [0] [2] = 2 ; 63は SparseArray [0] = 3 [1]。; 64 SparseArray [1] = 4 [1] ; 65 [1] SparseArray [ 2] = 1 ; 66 SparseArray [2] [0] = 6 ; 67 SparseArray [2] [1] = 7。。; 68 SparseArray [2] [2] = 2 ; 69 70 // 二次元アレイの作成 71 // 最初の行と列の得られた二次元アレイ 72 のint行= SparseArray [0] [0 ]; 73は、 INTカラムSparseArray = [0] [1。]; 74 INT [] [] = originalArray 新しい新しい INT [行] [列]; 75 76 //は最初の列に格納された疎なアレイは、二次元アレイトラバーサル値の異なるランクの数であるため、二次元アレイの割り当てに疎な配列を反復します1から始まり 77 のために(int型 Iは++; I <= sparseArray.length-1 I = 1 ){ 78 // 列値として第2行第3列の各行の最初の列行によれば、カラム、二次元配列に値を割り当てる 79 行= SparseArray [I] [0 ]; 80 カラムSparseArray = [I] [1 ]; 81 originalArray [行] [列] = SparseArray [I] [2 ]; 82 } 83 84 / / プリント二次元アレイ 85 System.out.println( "二次元アレイからの印刷完了スパースアレイ変換" ); 86 用(INT [] INTS:originalArray){ 87 用(INTのアイテム:INTS){ 88 System.out.print(アイテムの+「\ T " ); 89 } 90 のSystem.out.println(); 91である } 92 } 93 94 95 96 公共 静的 ボイドメイン(文字列[]引数){ 97 98 // 疎なアレイに二次元アレイ 99 TwoArrayToSparseArray(); 100 101 // 二次元アレイ変換スパースアレイ 102 SparseArrayToTwoArrayを(); 103 } 104 105 106 107 }