本文分兩部分:html
注:這兩部份內容均以類+註釋的方式進行說明,而且內容均來自官方教程(https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)。java
第一部分:express
/** public static void main(String[] args) {數據結構 interface CheckPerson{ |
第二部分:ide
假設一種場景:
A正在開發一個社交網絡應用,考慮添加一個功能——管理員能夠根據用戶(Person)的不一樣特徵,執行不一樣的操做,好比發送信息。函數
approaches是A寫的不一樣的實現,從a1 ~ a8,看看每一個方法較以前有什麼明顯的提高。優化
備註:1> Person 社交網絡應用用戶類 2> PersonGenerator 用戶列表模擬產生類
方法一:
/** public static void main(String[] args) { } |
方法二:
/** public static void main(String[] args) {
|
方法三:
/** public static void main(String[] args) { } class SearchPersonsByAage implements CheckPerson { @Override interface CheckPerson { |
方法四:
/** List<Person> persons = PersonGenerator.generatePerons(); } public static void printPerson(List<Person> persons, CheckPerson check) { } interface CheckPerson { |
方法五:
/** public static void main(String[] args) { } interface CheckPerson { |
方法六:
/** public static void main(String[] args) { List<Person> persons = PersonGenerator.generatePerons(); public static void printPerson(List<Person> persons, Predicate<Person> check) {
class Aministrator { interface Predicate<T> { |
方法七:
/** public static void main(String[] args) { List<Person> persons = PersonGenerator.generatePerons(); public static void processPersons(List<Person> persons, Predicate<Person> check, Consumer<Person> block) { interface Predicate<T> { |
方法八:
/** public static void main(String[] args) { List<Person> persons = PersonGenerator.generatePerons(); } }
|
方法九:
/** public static void main(String[] args) { List<Person> persons = PersonGenerator.generatePerons(); } } interface Predicate<T> { public boolean test(T t);} |