☀️提高生产力:这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);
相关推荐
无理 Java28 分钟前
【技术详解】SpringMVC框架全面解析:从入门到精通(SpringMVC)
java·后端·spring·面试·mvc·框架·springmvc
gobeyye1 小时前
spring loC&DI 详解
java·spring·rpc
鱼跃鹰飞1 小时前
Leecode热题100-295.数据流中的中位数
java·服务器·开发语言·前端·算法·leetcode·面试
我是浮夸1 小时前
MyBatisPlus——学习笔记
java·spring boot·mybatis
TANGLONG2221 小时前
【C语言】数据在内存中的存储(万字解析)
java·c语言·c++·python·考研·面试·蓝桥杯
杨荧1 小时前
【JAVA开源】基于Vue和SpringBoot的水果购物网站
java·开发语言·vue.js·spring boot·spring cloud·开源
Leighteen2 小时前
ThreadLocal内存泄漏分析
java
java6666688882 小时前
Java中的对象生命周期管理:从Spring Bean到JVM对象的深度解析
java·jvm·spring
柚乐果果2 小时前
数据分析实战简例
java·大数据·python
我焦虑的编程日记2 小时前
【RabbitMQ】RabbitMQ学习
java·数据库·java-ee