提高生产力,Java的这10个Lambda表达式必须掌握

news/2025/3/19 13:49:16/

今天为大家介绍的非常具有实操意义,Java的Lambda表达式自从引进以来,给Java的书写的效率上得到了极大的提升,可以简化代码、提高生产力。这篇文章将介绍10个我们必须掌握的Lambda表达式,这些表达式都是我根据实际使用情况,涵盖了在实际编程中的常见场景,比如列表操作、函数组合、条件筛选等。通过对这些的学习,你将更加深入地理解函数式编程的思想,能够更加高效地编写代码。

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

核心关键方法:forEach
使用前

List<String> list = Arrays.asList("apple", "banana", "orange");
for (String fruit : list) {System.out.println(fruit);
}

使用后

List<String> list = Arrays.asList("apple", "banana", "orange");
list.forEach(fruit -> System.out.println(fruit));

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

核心关键方法:Collections.sort
使用前

List<String> list = Arrays.asList("apple", "banana", "orange");
Collections.sort(list, new Comparator<String>() {public int compare(String s1, String s2) {return s1.compareTo(s2);}
});

使用后

List<String> list = Arrays.asList("apple", "banana", "orange");
Collections.sort(list, (s1, s2) -> s1.compareTo(s2));

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

核心关键方法:filter
使用前

List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> filteredList = new ArrayList<String>();
for (String fruit : list) {if (fruit.startsWith("a")) {filteredList.add(fruit);}
}

使用后

List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> filteredList = list.stream().filter(fruit -> fruit.startsWith("a")).collect(Collectors.toList());

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

核心关键方法:map
使用前

List<String> list = Arrays.asList("apple", "banana", "orange");
List<Integer> lengths = new ArrayList<Integer>();
for (String fruit : list) {lengths.add(fruit.length());
}

使用后

List<String> list = Arrays.asList("apple", "banana", "orange");
List<Integer> lengths = list.stream().map(fruit -> fruit.length())
.collect(Collectors.toList());

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

核心关键方法:reduce

使用前

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
for (int i : list) {sum += i;
}

使用后

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream().reduce(0, (a, b) -> a + b);

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

核心关键方法:Collectors.groupingBy

使用前

List<String> list = Arrays.asList("apple", "banana", "orange");
Map<Integer, List<String>> grouped = new HashMap<Integer, List<String>>();
for (String fruit : list) {int length = fruit.length();if (!grouped.containsKey(length)) {grouped.put(length, new ArrayList<String>());}grouped.get(length).add(fruit);
}

使用后

List<String> list = Arrays.asList("apple", "banana", "orange");
Map<Integer, List<String>> grouped = list.stream().collect(Collectors.groupingBy(fruit -> fruit.length()));

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

核心关键方法:reduce

使用前

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

使用后

MyInterface myObject = input -> System.out.println(input);
myObject.doSomething("Hello World");

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

核心关键方法:() ->

使用前

Thread thread = new Thread(new Runnable() {public void run() {System.out.println("Thread is running.");}
});
thread.start();

使用后

Thread thread = new Thread(() -> System.out.println("Thread is running."));
thread.start();

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

核心关键方法:Optional.ofNullable

使用前

String str = "Hello World";
if (str != null) {System.out.println(str.toUpperCase());
}

使用后

Optional<String> str = Optional.ofNullable("Hello World");
str.map(String::toUpperCase).ifPresent(System.out::println);

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

核心关键方法:stream

使用前

List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> filteredList = new ArrayList<String>();
for (String fruit : list) {if (fruit.startsWith("a")) {filteredList.add(fruit.toUpperCase());}
}
Collections.sort(filteredList);

使用后

List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> filteredList = list.stream().filter(fruit -> fruit.startsWith("a")).map(String::toUpperCase).sorted().collect(Collectors.toList());

http://www.ppmy.cn/news/503875.html

相关文章

零基础请进,影视解说必备的5个工具|不可错过的免费配音软件

今天给大家整理了几个影视解说能用到的必备工具&#xff0c;建议收藏备用&#xff01; 工具1&#xff1a;剪映 途径&#xff1a;手机/电脑 功能&#xff1a;视频剪辑 使用&#xff1a;简单好上手&#xff0c;适合无经验小白&#xff0c;无需教程&#xff0c;自己摸索就能掌握。…

NBA2kol2显示游戏服务器关闭,nba2kol2怎么暂停

nba2kol2是一款非常好玩的模拟真人篮球对战游戏&#xff0c;那么在游戏中玩家想要暂停比赛该怎么办呢&#xff1f;小编这里就给大家带来有关nba2kol2怎么暂停的详细介绍。 参考答案&#xff1a; 游戏中默认暂停按键是“]”&#xff0c;进入游戏大厅后&#xff0c;可以选择右上角…

配音秀显示服务器溜去配音啦,配音秀作品恢复方法操作介绍

配音秀 标签&#xff1a; 娱乐 配音秀app这款全新打造的视频应用类app&#xff0c;你能在这里快速享受各种搞笑有趣视频的配音体验&#xff0c;非常的好玩搞笑&#xff0c;让你感受全社区的人都在疯了一样的配音&#xff01; 配音秀安卓版功能介绍&#xff1a; 1、【看视频】 看…

二维动画后期制作的要点

二维动画是宣传片制作的一种技术&#xff0c;下面为大家分享二维动画后期制作的要点内容。 一、人物动作的处理 在制作二维动画时&#xff0c;会对人物进行造型设计来表现人物的性格、品质、状态等&#xff0c;给人留下深刻印象&#xff0c;而动画人物的运动也是其表现的重点&a…

Dota2设置英文配音中文界面

1、不进入游戏&#xff0c;右键Dota2&#xff0c;,选择属性&#xff0c;将Dota2属性中的语言设置为English 2、在通用——启动选项中输入 -perfectworld -language schinese然后就可以享受中文界面英文配音了&#xff0c;如果想改回中文配音只需把第一步的语言设置为中文即可

配音软件免费版哪个好?分享2款好用的配音软件帮你快速配音

目前做视频对配音的需求越来越大&#xff0c;市场上的配音软件也是五花八门&#xff0c;找到一款适合自己的配音软件不容易。小编根据多年的运营经验&#xff0c;推荐比较常用的两款配音软件&#xff0c;而且只需要自己简单操作就可以免费使用&#xff0c;大家来一起看看吧&…

Premiere Pro之添加配音(十七)

一、操作 》》检查电脑内置麦克风设置 》》对PR的音频进行设置&#xff08;依次点击 ->编辑 ->首选项 ->音频 勾选 “时间轴录制期间静音输入”&#xff09; 》》将素材导入到时间轴面板 》》点击A2轨道上的 “画外音录制” 在屏幕倒计时时且屏幕底部出现“正在录…

【真人手指动画制作软件】万彩手影大师教程 | 添加字幕与配音

万彩手影大师提供的添加字幕与配音功能&#xff0c;能让人视觉与听觉加深印象&#xff0c;还能让你的作品更生动更形象。 一、添加字幕&#xff0c;直接点击字幕行的时间轴中的“”&#xff0c;然后会有多个字体的设置功能。 1&#xff09;字体的样式选择 2&#xff09;字体大…