初识Lambda 推导

一、

package com.lzy.thread;
/**
 * Lambda表达式  简化线程(用一次)的使用
 * @author LZY
 *
 */
public class hTestLambda {

	//静态内部类
	static class Test implements Runnable{

		@Override
		public void run() {
			for(int i=0;i<20;i++) {
				System.out.println("一边听歌");
			}
		}
		
	}
	public static void main(String[] args) {
		
		//new Thread(new Test()).start();
		
		//局部内部类
		class Test2 implements Runnable{

			@Override
			public void run() {
				
				for(int i=0;i<20;i++) {
					System.out.println("一边听歌");
				}
			}
			
		}
		new Thread(new Test2()).start();
		
		//匿名内部类  必须借助接口或者父类
		new Thread(new Runnable() {
			public void run() {
				
				for(int i=0;i<20;i++) {
					System.out.println("一边听歌");
				}
			}
		}).start();
		
		
		//jdk8简化Lambda表达式
		new Thread(()->{
			for(int i=0;i<20;i++) {
				System.out.println("一边歌");
			}
		}).start();
	}
	
}

从静态内部类->局部内部类->匿名内部类->lambda 使代码逐渐的简化,匿名内部类不需要在定义实现类Test,lambda不但不需要定义实现类,方法名也简化省略。

二、自己定义一个 加深印象

package com.lzy.thread;
/**
 * Lambda表达式  自定义
 * @author LZY
 *
 */
public class hTestLambda02 {
	public static void main(String[] args) {
		//匿名内部类
		ILike like=new ILike() {
			public void lambda() {
				System.out.println("I like lambda");
				
			}
		};
		like.lambda();
		
		
		 //lambda
		like=()->{
			System.out.println("I like lambda");
		};
		like.lambda();
		 
	}
	

}
	
interface ILike{
	void lambda();
}
class Like implements ILike{

	@Override
	public void lambda() {
		System.out.println("I like lambda");
		
	}
	
}

三、

package com.lzy.thread;
/**
 * Lambda推导+参数
 * @author LZY
 *
 */
public class hTestLambda04 {
	public static void main(String[] args) {
		IInterste interste=(int a)->{
			System.out.println("i love lambda"+a);
		};
		interste.lambda(50);
		//简化 当代码只有一行时{}可以去掉,如果传入参数只有一个, 括号()也可以省掉
		interste=a->System.out.println("i love lamkbda"+a);
				interste.lambda(100);
	}
}
interface IInterste{
	void lambda(int a);
}
class Interface implements IInterste{

	@Override
	public void lambda(int a) {
		
		
	}
	
}

lambda可以根据情况适当更加简化

四,多线程使用lambda例子

package com.lzy.thread;
/**
 * Lambda推导+参数+返回值
 * @author LZY
 *
 */
public class hTestLambda06 {
	
		public static void main(String[] args) {
			new Thread(()->{
				for(int i=1;i<200;i++) {
				System.out.println("一边学习");
				}
			}).start();
			
			new Thread(()->{
				for(int i=1;i<200;i++) {
				System.out.println("一边难受**************");
				}
			}).start();
		}
	
}

不需要在继承Thread或者implements 接口 Runnable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值