2016-01-25 67 views
1

我正在使用java 8新功能“Lambda表达式”的酷炫功能。我认为它只有帮助开发人员简化编码。它是否对我的应用程序有任何性能影响。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)); 

}

+1

这是一个关于lambdas的详细线程https://www.reddit.com/r/java/comments/2suvir/java_8_lambda_performance_is_not_great/ –

+2

更快的还在使用什么;因为字符串具有可比性,所以相当于: 'Collections.sort(cities)' – Bohemian

+0

“使用功能,因为它很酷”是开发者地狱的道路铺平了道路。 – biziclop

回答

1

不,不。在你的特定情况下(没有捕获参数),lambda实际上会更具性能,因为比较器只会被创建一次并被重用,而匿名类将在每次调用sortCities方法时创建。