lambda是一个匿名函数,是一段可以传递的代码,也可以理解为函数参数。基本形式() -> {}
简化了很多无用的代码,例如:相比匿名内部类定义比较器
/*** 匿名内部类*/@Testpublic void test1(){// 匿名内部类实现接口,匿名内部类的实例作为参数Comparator com = new Comparator() {@Overridepublic int compare(Integer o1, Integer o2) {return Integer.compare(o1,o2);}};TreeSet ts = new TreeSet<>(com);}/*** lambda表达式*/@Testpublic void test2(){Comparator com = (x,y) -> Integer.compare(x,y);// 更简洁可以这样写TreeSet ts = new TreeSet<>(Integer::compare);}
对于一些重复代码可以使用相应的设计模式进行优化,例如定义比较器接口然后进行分别实现,不过代码量也不小。
总之就是一个词,简洁。