2017-04-20 7 views
0

私はArray of Arraysです。 "すべてのエレメがnull"の場合、私はckeckに連絡したいと思います。私が作成していますどのようにここでJava:「配列の配列」が空であるかどうかを確認する方法/ null?

ですArray of Arrays

double[][] arr = new double[extrasSize][] 

明らか

(配列の大きさは、私は別のに1つのアクティビティから渡していますAndroidのバンドルに依存

、I (arr.length == 0)は使用できません。

さらに、(arr == null)を使用する必要がある場合は、配列の各要素をすべて調べる必要があります。これは最も単純な解決策かもしれませんが、間違いなく賢明な解決策ではありません。特に、これらのエレムネットの数が巨大で固定されていない場合。

Array of Arraysが空/ヌルであるかどうかを確認するもう1つの方法はありますか?あなたが求めているものを

+1

"これは最も簡単な解決策かもしれませんが、賢明な解決策ではありません" - なぜ賢明ではないのですか?各配列の項目は、空、空、または空ではありません。あなたはそれぞれを調べなければなりません。 – f1sh

+2

プリミティブ(ダブル、小文字のD)を使用しています。プリミティブ値は決してnullにはなりません。ネストされた配列がnullであるかどうかをチェックする方法を尋ねていますか? –

+0

配列に空の配列がある場合は、すべての配列を繰り返し処理し、配列が空であることを確認する必要があります。あなたはそれを逃れることはできません。 –

答えて

0

わからない:

double[][] arr = new double[extrasSize][] 

は、それぞれがdouble[]保持extrasSizeスロットを保持し、空の配列を作成します。これらのスロットは作成時にはヌルです。

後で確認する場合は、そこには他に方法はありませんが、彼らがnullかどうかを確認し、エントリを反復処理:

for (int i=; i < arr.length; i++) { 
    if (arr[i] == null) { ... 

そして、ちょうどレコードの:ARRスロットが[]オブジェクトを倍増することを指します。最初はnullです。すべての単一次元の場合には、この単純なコードはtrue戻ります

boolean isAllNull =Arrays.stream(arr).allMatch(singleArray -> singleArray == null); 

:あなたは、このような二重の[]配列を作成すると、スロットが二重の数字であり、すべて0

0

になりますあなたは、単にチェックすることができます配列はnull(2次元配列の内側)です。

関連する問題