常用的Lambda操作

1、打印集合中的数据

java 复制代码
List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
//打印集合内的数据
for(String s : list){
    System.out.println(s);
}
list.forEach(System.out::println);

2、列表排序

java 复制代码
List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
list.sort(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        return o1.compareTo(o2);
    }
});
list.sort((s1, s2) -> s1.compareTo(s2));

3、过滤列表

java 复制代码
List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
List<String> list2 = list.stream().filter(s -> 			
                                        s.startsWith("z")).collect(Collectors.toList());

4、映射:获取列表中的每个元素的长度

java 复制代码
List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
List<Integer>list3 = new ArrayList<>();
for(String s : list){
    list3.add(s.length());
}

List<Integer>list4 = list.stream().map(s -> s.length()).collect(Collectors.toList());

5、对列表中的数据进行求和操作

java 复制代码
List<Integer> list5 = Arrays.asList(1,2,3,4,5);
Integer sum1 = 0;
for(Integer i : list5){
    sum1 += i;
}
int sum2 = list5.stream().reduce(0, (a, b) -> a + b);

6、分组操作

java 复制代码
List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
Map<Integer, List<String>> group = new HashMap<>();
for(String s : list){
    if(!group.containsKey(s.length())){
        group.put(s.length(), new ArrayList<>());
    }
    group.get(s.length()).add(s);
}
Map<Integer, List<String>>group2 = list.stream().collect(Collectors.groupingBy(String::length));
Map<Integer, List<String>>group3 = list.stream().collect(Collectors.groupingBy(s -> s.length()));

7、实现接口

java 复制代码
MyInterFace myInterFace = new MyInterFace() {
    @Override
    public void doSomeThing(String s) {
        System.out.println(s);
    }
};

MyInterFace myInterFace1 = s -> System.out.println(s);

public interface MyInterFace{
    void doSomeThing(String s);
}

8、创建线程

java 复制代码
Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("hello world");
    }
});
thread.start();
Thread thread1 = new Thread(() -> System.out.println("hello word"));
thread1.start();

9、进行判空操作

java 复制代码
String str = "hello word";
if(str != null) str.toUpperCase();
       
Optional.ofNullable(str).map(String::toUpperCase).ifPresent(System.out::println);

10、流水线操作

java 复制代码
List<String> list6 = new ArrayList<>();
for(String s : list){
    if(s.startsWith("a")){
        list6.add(s.toUpperCase());
    }
}
Collections.sort(list6);
List<String> list7 = list.stream().filter(s -> s.startsWith("a")).map(String::toUpperCase).sorted().collect(Collectors.toList());
相关推荐
ylscode几秒前
微软发布针对 Windows 11 的 KB5089573 补丁,以修复“周二补丁日”安装问题
windows·安全·microsoft·安全威胁分析
飞翔中文网3 分钟前
Java学习笔记之泛型
java·笔记·学习
喵了几个咪3 分钟前
Headless 后端实践:基于Go的企业级多栈管理系统脚手架
开发语言·vue.js·后端·golang·reactjs·gowind
枫叶丹45 分钟前
【HarmonyOS 6.0】Map Kit瓦片图层深度解析:本地加载方式与瓦片数据缓存能力
开发语言·缓存·华为·harmonyos
小小龙学IT6 分钟前
Go 并发模式深度解析:Fan-out/Fan-in 高效处理大规模数据流
开发语言·后端·golang
a83331966 分钟前
c语言课程设计小游戏,c语言小游戏设计案例
c语言·开发语言
valan liya7 分钟前
C++ 继承
开发语言·c++
路远_68 分钟前
Token、上下文、Prompt:大模型应用开发的三个基础概念
开发语言·人工智能
huangdong_10 分钟前
有什么软件可以下载淘宝和天猫店铺的商品图片?——从工具推荐到技术原理的完整解答
java·前端·数据库
零点一顿微胖10 分钟前
[Agent] 初始化Agent服务 Rust版
开发语言·网络·rust