在数学中,函数就是有输入量,输出量的一套计算方案,也就是"拿数据做操作",面向对象思想强调"必须通过对象的形式来做事情"
函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”
Lambda表达式就是函数式思想的体现
标准格式:
(形参列表) -> {代码块}
(形参列表) :方法的参数列表,如果没有参数,直接写()即可。
-> :用箭头指向方法要执行的代码块。
{代码块}:就是方法体中的代码。
参数类型可以省略:
如果参数有且仅有一个,参数类型和小括号都可以省略
如果代码块的语句只有一条,可以省略大括号,分号和return
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(33);
list.add(11);
list.add(22);
//匿名内部类
/*Collections.sort(list, new Comparator() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;
}
});*/
//Lambda表达式
Collections.sort(list,(o1,o2) -> o2-o1);
System.out.println(list);
}
函数式接口:只有一个抽象方法的接口,就可以使用Lambda代替
如果你对本文有疑问,你可以在文章下方对我留言,敬请指正,对于每个留言我都会认真查看。