Lambda 表达式

Student
1 | import java.io.Serializable; |
使用场景
过滤
1 | Student s1 = new Student(1L, "肖战", 15, "浙江"); |
转换
.map
map: 对于Stream中包含的元素使用给定的转换函数进行转换操作,新生成的Stream只包含转换生成的元素。这个方法有三个对于原始类型的变种方法,分别是:mapToInt,mapToLong和mapToDouble。这三个方法也比较好理解,比如mapToInt就是把原始Stream转换成一个新的Stream,这个新生成的Stream中的元素都是int类型。之所以会有这样三个变种方法,可以免除自动装箱/拆箱的额外消耗;
1 | Student s1 = new Student(1L, "肖战", 15, "浙江"); |
.mapToLong
1 | Student s1 = new Student(1L, "肖战", 15, "浙江"); |
.collect
1 | Student s1 = new Student(1L, "肖战", 15, "浙江"); |
1 | Map<String, String> map = new HashMap<>(); |
去重
基本类型
1 | //简单字符串的去重 |
集合
1 | //引用对象的去重,引用对象要实现hashCode和equal方法,否则去重无效 |
排序
默认排序
1 | List<String> list = Arrays.asList("333", "222", "111"); |
指定排序规则
1 | Student s1 = new Student(1L, "肖战", 15, "浙江"); |
截取
截取前N个
1 | //集合limit,返回前几个元素 |
跳过前N个
1 | //集合skip,删除前n个元素 |
聚合
1 | //集合reduce,将集合中每个元素聚合成一条数据 |
极值
1 | Student s1 = new Student(1L, "肖战", 14, "浙江"); |
匹配
anyMatch:Stream 中任意一个元素符合传入的 predicate,返回 true
allMatch:Stream 中全部元素符合传入的 predicate,返回 true
noneMatch:Stream 中没有一个元素符合传入的 predicate,返回 true
1 | Student s1 = new Student(1L, "肖战", 15, "浙江"); |
分组
1 | Student s1 = new Student(1L, "肖战", 15, "浙江"); |
结果如下:
1 | { |
- 本文标题:Lambda 表达式
- 本文作者:valten
- 创建时间:2020-04-23 10:03:12
- 本文链接:https://valtenhyl.github.io/Java/lambda/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论