2012-04-22 8 views
9

2次元ブール行列の値を保存するためにギザギザの配列を使用するように宿題を割り当ててください。ギザギザの配列のためのJavaクラスが組み込まれているのですか?それとも、ArrayListsの配列で手動で作成する必要がありますか?Java Jagged Array

答えて

16

Javaでは、2D配列は1D配列オブジェクトの配列です。各1D配列は長さが異なるので、ギザギザの配列をそのまま使用できます。例えば

は、次のようにJavaの完全に有効である、と3 5 3 4を出力:あなたが疎行列の実装をお勧めしますよう

int x[][] = {{0,1,2,3,4},{0,1,2},{0,1,2,3}}; 
    System.out.println(x.length); 
    System.out.println(x[0].length); 
    System.out.println(x[1].length); 
    System.out.println(x[2].length); 
+0

これらのindiviuals配列に要素を追加する必要がある場合は、x [1]の代わりにxのサイズを変更する必要がありますか? –

+1

@Chris:はい。例えば、 'x [1] = Arrays.copyOf(x [1]、newLength);' – NPE

0

それは実際に聞こえます。マトリックスを変更する必要がある場合は、パフォーマンスを大幅に向上させることができます。配列のコピー操作はかなり高価です。 Sparse matrices/arrays in Java