2012-03-09 15 views
2

よりeffecientであるかどうか:は、イテレータを使用してコレクションを反復することは、次のように私はコレクションを持っている通常の反復処理

final List list = new ArrayList(3); 

が、それはのような何かをするeffecientです

for (final Iterator iter = list.iterator(); iter.hasNext();) 
    { 
     // do something 
    } 

OR

for(final Object obj : list){ 
// do something 
} 
以下

+1

通常、コードの明瞭さがパフォーマンスを心配するよりも重要です。 –

答えて

5

2番目の例は、最初の例のショートカット構文です。彼らは本質的に同じものです(forループでfinal Object obj = iter.next();と呼んでいると仮定します)。

"for-each"または "enhanced for"と呼ばれるショートカット構文は、より洗練され、より直感的で、Péter Török notesが潜在的なバグを避けるため、より一般的に使用されます。柔軟性を高めるために必要なときには、単純な構文だけを推奨します。

は、より多くの情報についてはこちらの記事を参照してください:http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

+0

それはちょうどformating違いですか? –

+1

さらに、2番目の例はより安全です。最初の形式(特にネストされたループ)を使用して発生する可能性のあるバグを回避します。 –

関連する問題