我在NamAryVar中有一个Class Object列表
我需要检查String是否等于列表中任何NamCar的NamVar
我这样做有两种方式,我得到了理想的结果
但
我想知道哪种更快,更有效,并且在这两种方法中使用更少的资源。
| * |使用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 :(得分:0)
Java 8流几乎总是比常规迭代执行得更糟。这些流被添加到Java中,将函数式编程结构引入语言,从而为程序员提供便利。易用性和可维护性是流背后的主要动力。
看一下这篇文章:How Java 8 Lambdas and Streams Can Make Your Code 5 Times Slower