web-dev-qa-db-ja.com

Javaの多次元配列の長さ

インデックスが等しくない多次元配列の長さを見つける方法は?

たとえば、私はint[][] pathList = new int[6][4]を持っています

実際にインデックスをハードコーディングせずに、「6」と「4」を見つける必要があります。

pathList.lengthで6を見つけることができますが、「4」を取得する方法は?

27

これにより、インデックスiの配列の長さがわかります。

pathList[i].length

CやC++とは異なり、Javaの2次元配列の要素の長さは等しい必要はありません。たとえば、pathListがインスタンス化された場合new int[6][]、6を保持できますint []インスタンス。各インスタンスは異なる長さにすることができます。


したがって、質問で示した方法で配列を作成する場合、同様に行うことができます

 pathList[0].length

あなたはそれらがすべて同じ長さを持っていることを知っているので。それ以外の場合は、アプリケーションに固有の、正確に定義する必要がありますwhat 2番目の次元の長さは、すべての要素の最大長、またはおそらく最小の長さです。ほとんどの場合、すべての要素を反復処理し、その長さを読み取って決定を下す必要があります。

for(int i = 0; i < pathList.length; i++)
{
    int currLen = pathList[i].length;
}
58

これは3次元配列用です。

 int x[][][]=new int[5][8][10];
        System.out.println(x.length+" "+x[1].length+" "+x[0][1].length);

出力:5 8 10

11

Javaには「ギザギザ」の多次元配列があります。つまり、2次元配列の各「行」は、異なる数のコンポーネントを持つことができます。各行に同じ数のコンポーネントがあると想定できる場合は、次を使用します。

pathList[0].length;

それ以外の場合、反復する必要があります。

int maxRowLength = 0;
for (int i = 0; i < pathList.length; i++) {
    if (maxRowLength < pathList[i].length) {
        maxRowLength = pathList[i].length;
    }
}
8
Nathan Ryan

2 D配列の場合:-

int x[][] = new int[6][12];
System.out.println(x.length + " " + x[1].length);

出力:6 12

4
Nikhil Kumar

Java多次元配列と呼ぶ配列の配列を定義できます。配列の配列とは、配列の単一要素が再び配列であることを意味します(in Javaは複数の長さにすることができます)。同じサイズのすべてのサブ配列を持つマルチ配列の長さを見つけるには、次を使用できます。

int[][]a=new int[3][3];//let a[][] be my array
a.length will work.   //a is an object of proxy class and length is its property.

ただし、異なるサイズのサブ配列がある場合は、繰り返し処理する必要があります。

for(i=0;i<a.length;i++)
        int cur_size=a[i].length;
1
Vaibhav Grover

3次元配列の長さ

int[][][] a = new int[2][3][7];
int length=0;
for(int[][] i:a){
    for(int j[]:i){
        length+=j.length;
    }   
}           
System.out.println(length);
0
KSRKSR