讲解什么是函数式编程和什么是lambda表达式
java创建线程再熟悉不过了
jdk8之前创建线程
new Thread(new Runnable() { @Override public void run() { System.out.println("你是猪头"); } });
jdk8之后Lambda表达式则只需要使⽤⼀句话
new Thread(() -> System.out.println("你是猪头"));
集合容器⾥⾯的字符串排序 使⽤前
public static void main(String[] args) { List<String> list = Arrays.asList("aaa", "ggg", "ffff", "ccc"); Collections.sort(list, new Comparator<String>() { @Override public int compare(String a, String b) { return b.compareTo(a); } } ); for (String string : list) { System.out.println(string); } }
使用后
public static void main(String[] args) { List<String> list = Arrays.asList("aaa", "ggg", "ffff", "ccc"); Collections.sort(list, (a, b) -> b.compareTo(a) ); for (String string : list) { System.out.println(string); } }
- ambda表达式 使⽤场景(前提):⼀个接⼝中只包含⼀个⽅法,则可以使⽤Lambda表达式,这样的接⼝称之为“函数接⼝”
- 第⼀部分为括号内⽤逗号分隔的形式参数,参数是函数式接⼝⾥⾯⽅法的参数;
- 第⼆部分为⼀个箭头符号:->;第三部分为⽅法体,可以是表达式和代码块
- 参数列表 :
- 括号中参数列表的数据类型可以省略不写
- 括号中的参数只有⼀个,那么参数类型和()都可以省略不写
- ⽅法体:
- 如果{}中的代码只有⼀⾏,⽆论有返回值,可以省略{},return,分号,要⼀起省略,其他
则需要加上
- 如果{}中的代码只有⼀⾏,⽆论有返回值,可以省略{},return,分号,要⼀起省略,其他
- 好处
- Lambda 表达式的实现⽅式在本质是以匿名内部类的⽅式进⾏实现
- 重构现有臃肿代码,更⾼的开发效率,尤其是集合Collection操作的时候
本文作者为DBC,转载请注明。