9

これを行うにはもっと良い方法が必要だと思います.. ArrayList を返す関数を呼び出しています。その ArrayList が 10 個の null アイテム (デフォルト) のみを返す場合、10 個のアイテムすべてを反復処理して null かどうかを確認せずにこれをチェックする方法はありますか?

4

7 に答える 7

8

一般的に、いいえ。任意の ArrayList に の 10 個のインスタンスが含まれnullていることを確認するには、それをループして各要素が であることを確認する以外に方法はありませんnull。もちろん、リストの size() が 10 に等しくない場合は、これを忘れることができます。

于 2013-01-04T18:14:40.313 に答える
3
List<Object> arrayList = new ArrayList<Object>();

arrayList.isEmpty();
// first call returns true    

arrayList.add(null);
// second call returns false    
Object obj = new Object();

arrayList.add(obj);

arrayList.isEmpty();
// third call returns false

それはあなたが望んでいたものですか?

null を複数追加すると、サイズが 1 増加しますが、配列リストをループしない限り、null オブジェクトの数を見つける具体的な「簡単な方法」はありません。

于 2013-01-04T18:14:59.457 に答える
2

ArrayList が空かどうかを確認しようとしていますか? (つまりmyArrayList.isEmpty())またはArrayListにnull参照のみが含まれているかどうかを確認しようとしていますか?すべてのエントリが null かどうかを確認しようとしている場合は、各エントリを確認する必要があります...

boolean isListOfNulls(List myList){
    for(Object o: myList)
        if(!(o == null))
            return false;
    return true;
}
于 2013-01-04T18:14:29.903 に答える
1

ストリーム API を試してください。

boolean haveOnlyNulls = arraylist.stream().noneMatch(object -> object != null);
于 2016-06-29T10:41:55.563 に答える
0

デフォルトを空のArrayListに変更し、isEmpty()を使用します。現在のデフォルトは無意味です。

于 2013-01-04T21:38:30.093 に答える