Lambda简述
- JDK8的一个新特性
- 希腊字母排序十一位的字母,英文名称为Lambda
- 避免内部类定义过多
- 其实质属于函数式编程的概念
下面是今天初次接触Lambda的简单应用
Lambda探索
Lambda,接口,类方法探索
下面直接看代码
package Thread;
/**
* Lambda表达式
*/
public class Lambda01 {
public static void main(String[] args) {
//正常使用外部类
inter test1=new inter();
int max1=test1.max(99,77);
System.out.println("2、两者中的最大值为:"+max1);
//使用Lambda
IInter test2=(a,b)->{
System.out.println("1、两者中的最大值为:");
return a>b?a:b;
};
int max2=test2.max(99,77);
System.out.println(max2);
//简化Lambda
IInter test3=(a,b)->a>b?a:b;
int max3=test3.max(99,77);
System.out.println("2、两者中的最大值为:"+max3);
}
}
//接口
interface IInter{
int max(int a,int b);
}
//外部类
class inter implements IInter{
@Override
public int max(int a, int b) {
System.out.println("两者中的最大值为:");
return a>b?a:b;
}
}
简单看一下运行结果
以线程创建为例
因为线程创建用到一个Runnable接口,很符合Lambda的使用
package Thread;
/**
* jdk8,中的lambda
* 以线程的创建为例子
*
*(Lambda表达式是专门用来实现函数式接口的表达式)
*/
public class LambdaThread {
//静态内部类Test01
static class Test01 implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"--->(静态内部类)新创建的线程0");
}
}
public static void main(String[] args) {
//方法一,静态内部类
Test01 th=new Test01();
new Thread(th).start();
//方法一,局部内部类
class Test02 implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"--->(局部内部类)新创建的线程1");
}
}
new Thread(new Test02()).start();
//方法一,匿名内部类,必须借助接口或者父类
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"--->(匿名内部类)新创建的线程2");
}
}).start();
//方法二、使用lambda表达式
//注意:和前者比较,lambda可以看做是简写了匿名内部类,删掉了接口名,方法名,简化为”(参数)->{实现;}“
new Thread(()->{
System.out.println(Thread.currentThread().getName()+"--->使用lambda新创建的线程3");
}).start();
//方法三,简写lambda,一行代码可以去掉;{}
new Thread(()-> System.out.println(Thread.currentThread().getName()+"--->使用lambda新创建的线程4")).start();
for(int i=0;i<10;i++){
System.out.println("主线程");
}
}
}
执行结果
Lambda应用二
在学习中查看了一下资料,有点文章也写到,使用Lambda简化遍历数组、列表什么的。
今天看到也简单了解了一下简化遍历的用法,没有时间深入了解,对它理解可能不太充分,就不贴出来了。
下次看到再进一步了解
最后
使用Lambda可以简化代码,使代码紧凑一些