本文分两部分: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);} |