当前位置: 首页 > 知识库问答 >
问题:

在性能方面Lambda和simple loop哪个会更好?[副本]

田晨
2023-03-14

不过,这种例子帮助我更好地理解:

//Old way:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
for(Integer n: list) {
System.out.println(n);
}

//New way:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
list.forEach(n -> System.out.println(n));


//or we can use :: double colon operator in Java 8
list.forEach(System.out::println);

不过,我还是不明白为什么这是一种创新。它只是一个当“方法变量”结束时就会死亡的方法,对吧?为什么我要用这个而不是一个真正的方法?这将是性能更好的选择。Lambda或简单循环。

共有1个答案

袁恩
2023-03-14

我的建议是:

>

  • 使用您和您的同事都认为最易维护的样式。

    如果您和您的同事对lambdas还不满意,请继续学习。

      null

    在这个具体的例子中,性能差异太小,无法测量。如果您扩展到一个包含数百万个元素的列表,则性能将取决于构建列表和编写数字所花费的时间。不同的迭代方式只会为整体性能贡献一小部分。

    对于那些仍然想知道使用lambda还是常规循环更快的人来说,最好的答案是:

    “它取决于各种因素,这些因素1)还没有被很好地理解,2)随着Java编译器技术的发展,这些因素可能会发生变化。

    我们可以用特定的Java主/次/补丁版本给出一个特定示例的答案,但泛化是不明智的。

  •  类似资料:
    • 问题内容: 在其中总是最好使用Locator定位元素。 最小定位器是(如果我输入错误,请纠正我)。 那么,人们 在进行定位器 识别时,是否有任何优先顺序或顺序? 问题答案: 我只是从写一些点,这其中已经被GK27在给予参考,这里写的目的是要清楚,如果页面没有找到一段时间后,用户可以从这里查看。 因此,定位元素的更好方法是优先级明智,应该在列表中, 此处列表中的第一个值包含优先级,依此类推。 通过I

    • 问题内容: 为了观看对象作用域变量,将其设置为true还是更好? 对于一个对象变量(如15点的属性,一些嵌套2级深)与输入元件和更新在视图中,有多差与设定为?这是要避免的大事吗? 是一个更好的解决方案? 我正在寻找轻松的方式来提高AngularJS应用程序的性能(我仍然停留在v1.2.2上)。 问题答案: 该功能是上述两种配置之间的中间地带。它比普通的$ watch()函数更深入;但是,它几乎不像

    • 使用每个UI视图活动是否具有性价比? 如果对UI视图使用with Fragment,性能可能更好,但使用Fragment的可靠性(例如:在与活动和Fragment相互循环时手动维护数据状态,但如果使用活动,则更少自定义维护)更可靠? 我想要一些关于我问题的建议。

    • 问题内容: 将其放入代码中-哪个具有更好的性能(如果有区别的话)? 鉴于这种: 哪个更快? 或这个: 问题答案: 它们之间没有区别,您可以在字节码中进行验证: 运行以查看其编译结果: 这是输出: 如您所见-第5,6,9行(隐式)与10、11、14行(显式)相同。

    • 本文向大家介绍Zookeeper和Eureka哪个更好?,包括了Zookeeper和Eureka哪个更好?的使用技巧和注意事项,需要的朋友参考一下 Zookeeper和Eureka哪个更好? 1、CAP理论 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求 C:数据一致性:保证所有数据都要同步 A:可用性:要保证任何时候请求数据都能够正常响应 P:分区容错性:当网络通信发生故