1,作用:

简化匿名内部类的书写;(相当于对抽象方法的重写)
注意:仅能使用一个抽象方法的接口(此类接口也称:函数式接口)

2,Lambda的表达式基本(无参)格式:形式参数(),箭头->,代码块

() -> {
方法体;
}

a,使用举例:

  1. new Thread(new Runnable() {
  2. @Override
  3. public void run() {
  4. System.out.println("常规写法");
  5. }
  6. }).start();
  7. ////Lambda表达式:
  8. new Thread(() -> {
  9. System.out.println("xiancen");
  10. }).start();

4,Lambda的带参格式:

(抽象方法的参数) -> {
方法体;
}

a,使用举例:

  1. public class Text01 {
  2. public static void main(String[] args) {
  3. ArrayList<Integer> list = new ArrayList<>();
  4. list.add(13);
  5. list.add(18);
  6. list.add(34);
  7. list.add(43);
  8. Collections.sort(list, new Comparator<Integer>() {
  9. @Override
  10. public int compare(Integer o1, Integer o2) {
  11. return o1 - o2;
  12. }
  13. });
  14. System.out.println(list);
  15. Collections.sort(list, (Integer o1, Integer o2) -> {
  16. return 02 - o1;
  17. });
  18. System.out.println(list);
  19. }
  20. }

5,Lambda的省略格式:

a,省略规则:

①参数类型可以省略 (Integer o1, Integer o2) 省略后 (o1, o2)
②如果参数有且仅有一个,那么小括号可以省略 (String s) 省略后 s
③如果代码块的语句只有一条,可以省略{}; 和 return

b,使用举例:

  1. //省略格式:
  2. Collections.sort(list, (o1, o2) -> o2 - o1);
  3. System.out.println(list);

6,方法的引用(对象名引用方法):

  1. 格式:
    1. 方法的引用(对象名 ::方法名)
  2. 示例:

    1. text01(data::getTime);
    2. Stream.of(55, 11, 33, 88).skip(0).forEach(System.out :: println);

    7,方法的引用(类名引用静态方法):

  3. 格式:

    1. 静态方法的引用(类名::静态方法名)
  4. 示例:
    1. text02(System::currentTimeMillis);