2016-01-25 69 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方法時創建。