1

次のような宣言時の ArrayList など、Java コレクションを初期化することの主な欠点はありますか。

List<String> strList = new ArrayList<String>();

主な目的は、要素を取得する際の null チェックの混乱を避けることです。

ありがとう

4

3 に答える 3

3

一般に、唯一の欠点は、一連のコレクションが何もせず、コレクションを作成するために不必要に作業を行ってしまう可能性があることです。

私の個人的な好みは、ループ内やその他のパフォーマンス上の考慮事項など、メモリと初期化のオーバーヘッドを回避する明確な理由がない限り、常に有効なコレクションを割り当てることです。また、オブジェクトが null 以外に初期化されていることを常に確認していた場合、コレクションを使用する前に冗長な null チェックを行うことはありません。

私が追加する注意は、それを使用するコレクションを使用し、後のコードで完全に新しいコレクションに置き換えないことを確認することです (これは、設計上の欠陥の可能性を示します)。これを強制するために、コレクションを final として宣言できます。

于 2013-11-12T18:51:03.253 に答える
0

ほとんどの場合、すぐに初期化する必要があります。初期化されたからといって、null チェックを行う必要がなくなるわけではありません。オブジェクトの作成と if チェックは、パフォーマンスにほとんど影響しません。他のコレクションまたは配列からオブジェクトをコピーする必要があるリストを作成する場合のみ

于 2013-11-12T18:52:29.947 に答える