java lamda表达式小解

java lamda表达式小解

1、什么是函数式编程(百度百科上的解释)

 2、为什么要使用函数式编程(有什么好处)

  1、代码简洁,减少代码量

  2、接近自然语言,容易理解

  传统实现分组

List<Student> students;
Map<String,List<Student>> maps = Maps.newHashMap();
for(Student student : students){
    List<Student> studentList =   students.getOrDefault(student.getSex(), Lists.newArrayList());
    studentList.add(student);
    maps.put(student.getSex(), studentList);
}

  使用lambda表达式

Map<String, List<Student>> maps = student.stream.collect(Collerctor.groupBy(Student :: getSex));

  3、很好实现并发处理

3、什么是lambda表达式

  1、方法体为表达式,使用return将表达结果返回回去

  (paramates)-> expression

    (a, b) -> return a + b

  2、方法体为代码块,必须用{}包含起来,且需要使用return返回值,但是如果代码块返回的是void,那么不需要返回值

  (parameter) -> {statements;}   

  (int a) -> (System.out.println(a))

  (int a) -> (return a*a);

4、lambda的底层实现

BinaryOperator binaryOperator = (int a, int b) -> {return a + b;};
if(binaryOperator instanceof BinaryOperator){System.out.println(binaryOperator.getClass());}
int sum = binaryOperator.applyAsInt(2,3);
System.out.println(sum);

 可以看出来binaryOperator其实是继承BinaryOperator的一个匿名内部类

猜你喜欢

转载自www.cnblogs.com/zhangchiblog/p/11449046.html