Lambda表达式

Lambda表达式

Lambda表达式的语法

  • 主要由三部分组成:
  • 1.形参列表: 形式参数允许省略参数类型
  • 2.箭头 ->
  • 3.方法体: 由大括号包裹,当方法体中只有一条语句,{}可以省略
  • 4.当一个方法有返回值的时候,如果只是返回一条语句,那么return和{}都可以省略,这个表达式结果自动作为返回值的结果返回

示例代码如下:

public class LambdaDemo {
	public static void main(String[] args) {
//		new Test().dailup(() -> {System.out.println("打电话");});
		IDailup dailup = () -> System.out.println("打电话");
		new Test().dailup(dailup);
		
		IPlay play = (name) -> {
			System.out.println(name);
		};
		new Test().play(play);
		
		new Test().calc((m,n) -> {return m + n;});
		new Test().calc((m,n) -> m + n);
	}
}

class Test{
	public void dailup(IDailup dailup) {
		dailup.dailup();
	}
	
	public void play(IPlay play) {
		play.play("Dvd播放器");
	}
	
	public void calc(ICalculate calculate) {
		int addResult = calculate.calc(20, 30);
		System.out.println(addResult);
	}
}

interface IDailup{
	void dailup();
}

interface IPlay{
	void play(String name);
}

interface ICalculate{
	int calc(int a, int b);
}

Lambda表达式在集合中的应用

示例代码如下:

public class ThreadDemo07 {

	public static void main(String[] args) {
		List<String> list =new ArrayList<>();
		list.add("张三");
		list.add("张三丰");
		list.add("张三和");
		list.forEach(new Consumer<String>() {

			@Override
			public void accept(String t) {
				System.out.println(t);
				
			}
			
		});
		
		System.out.println("----forEach的Lambda表达式---------");
		list.forEach((t)->System.out.println(t));
		
		System.out.println("------forEachRemaining-------");
		Iterator<String> it=list.iterator();
		it.forEachRemaining((t)->System.out.println(t));
	}

}

Lambda表达式的使用

Lambda表达式是JDK1.8之后引入,本质就是方便匿名内部类的书写。只有一个抽象方法的接口就是函数式接口例如 Runnable

示例代码如下:

public class LambdaDemo01 {
	public static void main(String[] args) {
		new Demo().method(new Inter() {
			
			@Override
			public void show() {
				// TODO Auto-generated method stub
				System.out.println("show");
			}

//			@Override
//			public void show2() {
//				System.out.println("show2");
//				
//			}
		});
		
		// 使用Lambda表达式改进
		new Demo().method(() -> System.out.println("show"));
	}
}

class Demo{
	public void method(Inter i) {
		i.show();
	}
}

@FunctionalInterface
interface Inter{
	public void show();
//	public void show2();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值