☀️提高生产力:这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);
相关推荐
云原生指北9 分钟前
命令行四件套:fd-rg-fzf-bat
java·大数据·elasticsearch
人间打气筒(Ada)1 小时前
go实战案例:如何通过 Service Meh 实现熔断和限流
java·开发语言·golang·web·istio·service mesh·熔断限流
主宰者2 小时前
C# CommunityToolkit.Mvvm全局事件
java·前端·c#
计算机学姐2 小时前
基于SpringBoot的咖啡店管理系统【个性化推荐+数据可视化统计+配送信息】
java·vue.js·spring boot·后端·mysql·信息可视化·tomcat
My的梦想已实现2 小时前
关于JAVA Springboot集成支付后打包JAR之后报安全错误的处理
java·spring boot·jar
ooseabiscuit3 小时前
SpringBoot3整合FastJSON2如何配置configureMessageConverters
java
ok_hahaha3 小时前
java从头开始-黑马点评-Redission
java·开发语言
无巧不成书02183 小时前
Java面向对象零基础实战:从Employee类吃透自定义类核心,掌握封装精髓
java·开发语言·java入门·面向对象·自定义类·employee类·java核心技术
小江的记录本3 小时前
【注解】常见 Java 注解系统性知识体系总结(附《全方位对比表》+ 思维导图)
java·前端·spring boot·后端·spring·mybatis·web
跃上青空3 小时前
Java如何优雅的使用fastjson2进行枚举序列化/反序列化,欢迎探讨
java·开发语言