2017-06-01 12 views
1

私はClassオブジェクトのリストをNamAryVarに持っています
Stringがリスト内のNamClのNamVarと等しいかどうかを確認する必要があります。
私はこれを2つの方法で実行しています。希望の結果が得られます。
ただし、
これらの2つの方法でどちらがより高速で効率的で、少ないリソースを使用しているかを知りたいと思います。btwフィルタとループの効率的なアプローチ

| * | forループを使用する:

boolean FndResVab = false; 
for(NamCls NamObjIdxVar : NamAryVar) 
{ 
    if(NamObjIdxVar.NamVar.equals("SomString")) 
    { 
     FndDupVab = true; 
     break; 
    } 
} 

| O |リストフィルタを使用する:

Boolean FndResVab = NamAryVar.stream() 
         .filter(IdxVar -> IdxVar.NamVar.equals("SomString")) 
         .count() == 1; 

if(FndResVab) 
{ 
    // TskTdo :=> When Found 
} 
else 
{ 
    // TskTdo :=> When Not Found 
} 

答えて

0

Java 8ストリームは、通常、通常の繰り返しよりも最悪のパフォーマンスを発揮します。ストリームはJavaに追加され、関数型プログラミング構造が言語に組み込まれました。これによりプログラマーに便利さがもたらされます。使いやすさと保守性は、ストリームの背後にある主な動機です。

は、この記事を見てください:How Java 8 Lambdas and Streams Can Make Your Code 5 Times Slower

そして、この質問:Java 8: performance of Streams vs Collections

関連する問題