☀️提高生产力:这10个Lambda表达式必须掌握!!!

1.使用Lambda表达式进行集合遍历

❌ 未使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
for (String fruit : list) {
	System.out.println(fruit);
}

✅使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
list.forEach(fruit->System.out.println(fruit));

2.使用Lambda表达式进行排序

❌ 未使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
Collections.sort(list,new Comparator(){
	public int compare(String s1,String s2){
		return s1.copmpare(s2);
	}
})

✅使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
Collections.sort(list,(s1,s2)->s1.compare(s2);

3.使用Lambda 表达式进行过滤

❌ 未使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
List filteredList=new ArrayList();
for(String fruit : list){
	if(fruit.startsWith("a")){
		filteredList.add(fruit);
	}
}

✅使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
List filteredList=list.stream().filter(fruit->fruit.startsWith("a))
					.collect(Collectors.toList());

4.使用Lambda表达式进行映射

❌ 未使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
List lengths=new ArrayList();
for(String fruit:list){
	lengths.add(fruit.length);
}

✅使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
List<String> lengths=list.stream().map(fruit->fruit.length())
					.collect(Collectors.toList());

5.使用Lambda表达式进行归约

❌ 未使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
int sum=0;
for(int i :list){
	sum+=i;
}

✅使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
int sum=list.stram().reduce(0,(a,b)->a+b);

6.使用Lambda表达式进行分组

❌ 未使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
Map<Integer,List<String>> grouped=new Hahmap<>();
for(String fruit :list){
	int length=fruit.length();
	if(!grouped.containsKey(length)){
		grouped.put(length,new ArrayList<String>());
	}
	grouped.get(length).add(fruit);
}

✅使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
Map<Integer,List<String>> grouped=list.stram()
							.collect(Collectors.groupingBy(fruit->fruit.length()));

7.使用Lambda表达式进行函数式接口的实现

❌ 未使用Lambda表达式:

java 复制代码
public interface MyInterface{
	public void doSomething(String fruit);
}

MyInterface  myObject=new MyInterface(){
	public void doSomething(String input){
		System.out.doSomething(input);
	}
};
myObject.doSomething("Hello World");

✅使用Lambda表达式:

java 复制代码
MyInterface myObject=input->System.out.println(input);
myObject.doSomething("Hello world");

8.使用Lambda表达式进行线程的创建

❌ 未使用Lambda表达式:

java 复制代码
Thread thread=new Thread(new Runnable(){\
	puhlic void run(){
		System.out.println("Thread is Running");
	}
});
thread.start();

✅使用Lambda表达式:

java 复制代码
Thread thread=new Thread(()->System.out.println("Thread is Running."));
thread.start();

9.使用Lambda表达式进行Optional的操作

❌ 未使用Lambda表达式:

java 复制代码
String str="Hello World";
if(str!=null){
	System.out.println(str.toUppercase());
}

✅使用Lambda表达式:

java 复制代码
Optional str=Optional.ofNullable("Hello World");
str.map(String::toUppercase).ifPresent(System.out.println);

10.使用Lambda表达式进行Stream的流水线操作

❌ 未使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
List<String> filteredList=new ArrayList<>();
for(String fruit:list){
	if(fruit.startWith("a")){
		filteredList.add(fruit.toUppercase());
	}
}
Collections.sort(filteredList);

✅使用Lambda表达式:

java 复制代码
List list = Arrays.aslist("apple", "banana", "orange");
List<String> filteredList=list.stram().filter(fruit->fruit.startsWith("a"))
.map(String::toUppercase)
.sorted().Collect(Collectors.toList);
相关推荐
测开小菜鸟1 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity2 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天2 小时前
java的threadlocal为何内存泄漏
java
caridle3 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^3 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋33 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花3 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
小松学前端3 小时前
第六章 7.0 LinkList
java·开发语言·网络
Wx-bishekaifayuan3 小时前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
customer083 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源