2009-11-09 3 views

答えて

16

第1に、Javaは技術的には2次元配列を持たない:配列の配列を持つ。だから、Javaでこれを行うことができます:

String arr[][] = new String[] { 
    new String[3], 
    new String[4], 
    new String[5] 
}; 

私が知りたいと思うポイントは、上記のものは長方形ではありません(実際の2D配列のように)。

あなたの配列の配列は、列、行または行、列の順ですか?行と列の場合は、簡単です。

int rows = arr.length; 

(上記の例)。

あなたの配列が列で、次に行である場合、問題があります。あなたはこれを行うことができます。

int rows = arr[0].length; 

が、これはいくつかの理由で失敗することがあります。arrayあなたは例外が発生します。その場合にはサイズ0でなければなりません

  1. 最初の配列要素の長さを行数と仮定しています。上の例のように必ずしも正しいとは限りません。

アレイは粗いツールです。真の2Dオブジェクトが必要な場合は、正しい振る舞いをするクラスを見つけたり書き込んだりすることを強くお勧めします。

8
Object[][] data = ... 
System.out.println(data.length); // number of rows 
System.out.println(data[0].length); // number of columns in first row 
+0

あなたは、私は単純に – Xailor

+0

はずのを:)よりも速く入力 //列 の数? –

5
int[][] ia = new int[5][6]; 
System.out.println(ia.length); 
System.out.println(ia[0].length); 
1

それはあなたが "行数" によって何を意味するかによって決まります。

2次元配列は、実際にはJavaの1次元配列の1次元配列です。また、2-D配列が実際には長方形であること、または第1次元のすべての要素が配置されるという要件はありません。

  • あなたが最初の次元の要素数を検索したい場合は、答えは単純array.lengthです。

  • 矩形の2次元配列の2番目の次元の要素の数を求める場合、答えは `array [0] .lengthです。

  • 非長方形または疎の2次元配列の2番目の次元の要素の数を調べる場合、その答えは未定義です。

関連する問題