Java 8 : How Lambda expression impacts

标签 java lambda java-8 expression

我正在使用 java 8 新功能“Lambda 表达式”,这是一个很酷的功能。我认为它只能帮助开发人员简化编码。它对我的应用程序有任何性能影响吗?

private void sortCities(List<String> cities){   //Conventional way
  Collections.sort(cities, new Comparator<String>() {
     @Override
     public int compare(String s1, String s2) {
        return s1.compareTo(s2);
     }
  });

}

private void sortCities(List<String> cities){  //Using Lambda Expression
  Collections.sort(cities, (s1, s2) -> s1.compareTo(s2));

}

最佳答案

不,事实并非如此。在您的特定情况下(不捕获参数),lambda 实际上会更具性能,因为比较器只会创建一次并重复使用,而对于匿名类,每次调用 sortCities 方法时都会创建它。

关于Java 8 : How Lambda expression impacts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984311/

相关文章:

可能导致精度或幅度损失的 Java 隐式转换?

java - JavaFX 中使用 Lambda 表达式的键绑定(bind)不起作用

c++ - 如何用 C++11 中的 lambda 调用替换仿函数调用?

java - 在 Java 8+ 流中是否有等同于 break 的东西?

Java bean 验证带范围的大写字母

java - 如何在 HK2 中注入(inject)未绑定(bind)的泛型类型?

java - 在Service中初始化网络连接

java - Mockito Spy 调用被侦测类的实际方法,而不是返回硬编码的模拟

java - 将 List<T> 中的平均值作为单个 T 对象返回

java - 如何将以下比较器翻译为Comparator.comparing?