1

私は配列を持っています:

final int[] exampleArray = new int[ID_DATA_ARRAY_SIZE];

そして、その配列をいくつかの方法で繰り返すことができます。次に例を示します。

方法 1:

for (int i = 0; i < exampleArray.length; i++) {
    // code where I use 'i' index
}

方法 2:

for (int i = 0; i < ID_DATA_ARRAY_SIZE; i++) {
    // code where I use 'i' index
}

どちらの方法が良いですか?それを行うための他のより良い方法はありますか?

4

4 に答える 4

3

要素を抽出する以外に何も必要ない場合はi、強化された for ループの方が少し見栄えがします。

for(int element : exampleArray) {
//code that uses element
}

配列へのアクセスとその他の両方に i を使用している場合は、方法 1 が最適であると主張します。

for (int i = 0; i < exampleArray.length; i++) {
    // code where I use 'i' index
}

その理由は、次に誰かがコードを見たときに、配列の長さまで繰り返していることがすぐにわかるからです。方法 2 (定数を使用) を選択すると、読者は、その定数が本当に配列の長さであるかどうか疑問に思うかもしれません。

于 2013-06-12T06:14:36.220 に答える
1

パフォーマンスとコードの読みやすさの両方に取り組むには、方法 2 の方が優れています。

「 local 」変数を呼び出す場合と比較して、追加の Java バイトコードを要求する必要がある「 memberexampleArray.length 」変数を呼び出すことにより、パフォーマンスによって評価されます。しかし、その性能差は極めて微々たるものであり、よほどの計算をしないと気が付かないほどです。

読みやすさで評価された ID_DATA_ARRAY_SIZE は、読んでいる人に向けて意図を示しています。これは、見かけよりも重要です。しかし、あまりにも多くのプログラマーが無意味またはあいまいな変数名を配置しているため、コードの読み取りが自然に欠けています。変数や関数に自然な方法で名前を付けると、将来自分自身や他の人がコードを扱うのがはるかに簡単になり、良い習慣になります。

于 2013-06-12T06:30:54.067 に答える
0

どのようにやりたいかは個人的な好みの問題ですが、配列を操作するときはいつでも、配列のnullをチェックしてから自分のことをしてください。

于 2013-06-12T06:15:02.900 に答える