Java8 Lambda编程常用技巧
遍历打印List
List<Integer> list= Arrays.asList(1,5,6,8,9,32,5,8,7,4,5);
list.forEach(System.out::println);
排序
List<Integer> list = Arrays.asList(1, 5, 6, 8, 9, 32, 5, 8, 7, 4, 5);
list.sort((o1, o2) -> o1-o2);
过滤
List<Integer> list = Arrays.asList(1, 5, 6, 8, 9, 32, 5, 8, 7, 4, 5);
list.stream().filter(num -> num>10).forEach(System.out::println);
注:过滤器 不会影响 原来的列表
List<Integer> list3 = Arrays.asList(1, 6, 4, 3, 2, 8, 4, 3);
List<Integer> list3Res = list3.stream().filter(new Predicate<Integer>() {
@Override
public boolean test(Integer num) {
return num == 3;
}
}).collect(Collectors.toList());
System.out.println(list3Res); // [3, 3]
filter: 会移除不符合条件的数据
从一个list生成另一个list1数据
List<String> list=Arrays.asList("apple","banana","orange");
List<Integer> list2=list.stream().map(String::length).collect(Collectors.toList());
注:map
对管道流通的每个元素进行一个转换处理
累加
List<Integer> list = Arrays.asList(1, 5, 6, 8, 9, 32, 5, 8, 7, 4, 5);
Integer reduce = list.stream().reduce(0, (o1, o2) -> o1 + o2);
/**
* indentity 起始值
* (o1, o2) -> o1 + o2 等于 o1=o1+o2
*/
T reduce(T identity, BinaryOperator<T> accumulator);
分组
List<String> list=Arrays.asList("apple","banana","orange");
Map<Integer,List<String>> group=list.stream().collect(Collectors.groupingBy(String::length));
转换大小写
Optional.ofNullable("hello,world").map(String::toUpperCase).ifPresent(System.out::println);
排序及获取最大值
List<Integer> list1 = Arrays.asList(1, 6, 4, 3, 2, 8, 4, 3);
list1.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
System.out.println(list1);// [1, 2, 3, 3, 4, 4, 6, 8]
List<Integer> list2 = Arrays.asList(1, 6, 4, 3, 2, 8, 4, 3);
Optional<Integer> max = list2.stream().max(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
System.out.println(max.orElse(null));// 8
o1-o2 : 表示从小到大排序
max :是取最后一个值
本文来自博客园,作者:帅气的涛啊,转载请注明原文链接:https://www.cnblogs.com/handsometaoa/p/17415018.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)