リストが null かどうかなどの条件をチェックした回数。
まず、null
コレクションと空のコレクションは別物です。コレクションが空かどうかをテストするnull
必要がある場合は、別のテストが必要です。
第 2 に、コレクションがどちらかnull
または空である可能性がある場合 (アプリケーションの設計によって、それらは同じことを「意味」します)、設計に問題があります。ほとんどの場合、表現しようとしているものは何でも表現する必要があります... どちらかまたは両方ではなく、一方向です。
第 3 に、通常は ではなく空のコレクションを使用することをお勧めします。これは、空のコレクションnull
と空でないコレクションを一様に扱うことができるためです。対照的に、 a はnull
常に特殊なケースとして処理する必要があります。(そして、ケースを処理するのを忘れたnull
場合、可能性がありNullPointerExceptions
ます。)
そうは言っても ...
プログラム実行のパフォーマンスを考慮して、どちらが最適な条件であるか、またはこれらの組み合わせを作成する必要がありますか?
本当に a のケースに対処する必要がある場合は、null
をテストするしかありませんnull
。
isEmpty()
対の場合size() == 0
:
後者は、コレクション型の実装に依存します。具体的には、メソッドがコレクション要素をカウントsize()
する必要があるかどうかに依存します。(標準のコレクション クラスのいずれにもこのプロパティがあるとは思いませんが、そうするクラスが見つからないというわけではありません ...)
したがって、最適な述語は次のいずれかです。
c != null && !c.isEmpty()
また
!c.isEmpty()
(本当に)ヌルに対応する必要があるかどうかによって異なります。
そして当然の帰結として、空のコレクションを表すために を使用しない場合、アプリケーションはより効率的であるだけでなく、よりシンプルで堅牢になる可能性が高いということです。null
(不変の空のコレクション オブジェクトが必要な場合は、Collections
クラスで定義されたメソッド/静的から無料で取得できます。)