关于Lambda表达式的理解和使用

示例1:


package lambda;

public class Test1 {

	public void Test(){
//		Runnable r1=new Runnable() {
//
//			@Override
//			public void run() {
//				// TODO Auto-generated method stub
//				System.out.println("我爱中国");
//			}
//			
//		};
//		r1.run();
		System.out.println("+++++++++++++++++++")
		Runnable r2=() -> System.out.println("我爱北京");
		r2.run();
	}
	public static void main(String[] args) {
		Test1 t=new Test1();
		t.Test();
	}
}

示例2:

public void Test2() {
		Comparator<Integer> com1=new Comparator<Integer>() {
			@Override
			public int compare(Integer o1,Integer o2) {
				return Integer.compare(o1,o2);
			}
		};
		int compare1=com1.compare(10, 20);
		System.out.println(compare1);
		//Lomabda表达式写法
		Comparator<Integer> com2=(o1,o2) -> Integer.compare(o1, o2);
		int compare2=com2.compare(40, 40);
		System.out.println(compare2);
		System.out.println("================");
		//方法的引用
		Comparator<Integer> com3=Integer::compare;
		int compare3=com3.compare(50, 40);
		System.out.println(compare3);
	}
**Lambda表达式的基本语法:**
1.举例:(o1,o2) ->Integer.compare(o1,o2);
2.格式:
->:Lambda操作符或箭头操作符。
->左边:Lambda形参列表(其实就是接口中的抽象方法列表)。
->右边Lambda体(其实就是重写方法的方法体)。

如何使用,分为六种情况:
在这里插入图片描述
在这里插入图片描述

六种情况的总结:
->左边:Lambda形参列表的参数类型可以省略(类型推断),如果参数列表只有一个参数其()也可以省略。
->右边:Lambda体应该使用{ }包裹;如果Lambda只执行一条语句,省略这对{ }和关键字 return。
Lambda的本质是函数式接口的实例,一个接口中只声明了一个抽象方法的称之为函数式接口
Java8 中定义了4个基本的函数式接口:
在这里插入图片描述
当需要使用函数式接口时,应先看看jdk提供的函数式接口是否有能满足需求的函数式接口,若有直接调用。

何时使用Lambda表达式?
当需要将一个函数式接口实例化的时候,可以使用Lambda表达式,
凡要用匿名实现类的时候都可以用Lambda表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值