当前位置:网站首页>Lambda expression
Lambda expression
2022-07-03 12:17:00 【Early summer 0811】
One 、 introduce lambda expression
Let's create a new thread , Then implement runable Interface run Method :
public class demo1 {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(" The new thread executes ...");
}
}).start();
}
}
If you use lambda The expression can be abbreviated as :
public class demo1 {
public static void main(String[] args) {
new Thread(() -> System.out.println("lambda The expression was executed ...")).start();
}
}
labmda Benefits of expressions :
1. You can simplify anonymous inner classes , Simplify the code
Two 、lambda The standard format of expressions
( parameter list ): parameter list
{}: Method body
-> : No special significance , Connect parameters and method bodies
1. No parameter no return value
public interface Swimingable {
void swiming();
}
public class Swiming {
public static void main(String[] args) {
goSwiming(() ->{
System.out.println(" I am a lambda swimming ");
});
}
public static void goSwiming(Swimingable swimingable){
swimingable.swiming();
}
}
Run the following :
I am a lambda swimming
Seeing that the parameter of the method is an interface, you can consider using lambda expression , But not all anonymous inner classes can be used ;ambda expression ,lambda Expressions are equivalent to rewriting interfaces .
1. With parameter and return value
public interface SmokeAble {
int smoke(String name);
}
public class Smoking {
public static void main(String[] args) {
goSmoking((String name) -> {
System.out.println("labmda I smoked today " + name + " The smoke of ");
return 5;
});
}
public static void goSmoking(SmokeAble s) {
int i = s.smoke(" Yellow Crane Tower ");
System.out.println(" Return value :" + i);
}
}
The operation results are as follows :
labmda Today, I smoked from the Yellow Crane Tower
Return value :5
Let's use lambda Implement sorting :
public class PersonLambda {
public static void main(String[] args) {
List<Persion> persions = new ArrayList<>();
persions.add(new Persion(" Lau Andy ", 55, 167));
persions.add(new Persion(" Jacky Cheung ", 58, 174));
persions.add(new Persion(" early summer ", 42, 180));
Collections.sort(persions, (Persion o1, Persion o2) -> {
return o1.getAge() - o2.getAge();
});
for (Persion persion:persions){
System.out.println(persion);
}
}
}
Run the following :
Persion{
name=' early summer ', age=42, height=180}
Persion{
name=' Lau Andy ', age=55, height=167}
Persion{
name=' Jacky Cheung ', age=58, height=174}
3、 ... and 、lambda The ellipsis of expressions
The rules for using ellipsis are as follows :
1. Parameter types in parentheses can be omitted ;
2. If there is only one parameter in the lower bracket , Parentheses can also be omitted ;
3. If there is only one statement in braces , You can omit braces at the same time ,return Statements and semicolons
Before omitting :
(int a)->{
return new Person();
}
Omit :
a -> new Person()
Four 、lambda Preconditions for the use of expressions
lambda Expression syntax is very brief , but lambda Expressions are not misused , There are several conditions that need special attention when using :
1. The type of parameter or local variable of method must be interface type ;
2. There is only one abstract method in the interface ;
An interface with only one abstract method is called a functional interface , Just can use lambda expression ;
JDK8 I added a new one @FunctionalInterface annotation , It can help verify functional interfaces , If there are multiple abstract methods, an error will be reported .
边栏推荐
- Qt OpenGL 纹理贴图
- Flutter Widget : Flow
- Integer string int mutual conversion
- Shutter: about inheritedwidget
- php 获取文件夹下面的文件列表和文件夹列表
- Introduction to concurrent programming (I)
- Flutter: about monitoring on flutter applications
- Is BigDecimal safe to calculate the amount? Look at these five pits~~
- Summary of development issues
- If you can't learn, you have to learn. Jetpack compose writes an im app (II)
猜你喜欢

实现验证码验证

If you can't learn, you have to learn. Jetpack compose writes an im app (II)

Swagger

PHP導出word方法(一mht)

使用BLoC 构建 Flutter的页面实例

Basic knowledge of OpenGL (sort it out according to your own understanding)

Itext7 uses iexternalsignature container for signature and signature verification

Vulnhub's Tomato (tomato)

Pki/ca and digital certificate

MCDF Experiment 1
随机推荐
Flutter Widget : Flow
Dart: self study system
【附下载】密码获取工具LaZagne安装及使用
347. Top k high frequency elements
If you can't learn, you have to learn. Jetpack compose writes an im app (II)
Talk about the state management mechanism in Flink framework
Display time with message interval of more than 1 minute in wechat applet discussion area
Why can't my MySQL container start
(构造笔记)从类、API、框架三个层面学习如何设计可复用软件实体的具体技术
New features of ES6
Summary of development issues
ES6 standard
网络通讯之Socket-Tcp(一)
Colleagues wrote a responsibility chain model, with countless bugs
php 获取文件夹下面的文件列表和文件夹列表
2.7 overview of livedata knowledge points
4000 word super detailed pointer
242. Effective letter heteronyms
PHP导出word方法(一mht)
Atomic atomic operation