Lambda表达式
基本格式
(参数列表) -> {代码}
省略规则
-
参数类型可以省略
-
方法体只有一句代码时大括号return和唯——句代码的分号可以省略
-
方法只有一个参数时小括号可以省略
stream流
开启流debug模式
常用API
方法名 | 作用 |
---|---|
stream() / Arrays.stream() / Stream.of() / map.entrySet().stream() | 【创建流】把集合转换成流 |
distinct() | 【中间操作】排除流中重复元素 |
filter(a -> a.getAge()<18) | 【中间操作】过滤流中元素,重写test方法 |
map(a -> a.getName()) map(a -> a+10) | 【中间操作】把流中的元素进行类型转换 |
sorted( (01,02) -> o2.getAge()-o1.getAge() ) | 【中间操作】类需要继承Comparable接口 |
limit() | 【中间操作】设置流的长度,超出的部分会被抛弃 |
skip(n) | 【中间操作】跳过流中的前n个元素,返回剩下的元素 |
flatMap( a -> a.getBooks.stream() ) flatMap( a -> Arrays.stream( a.getCategory.spilt(",")) ) | 【中间操作】获取子元素的流 |
forEach(a -> System.out.println( a.getName )) | 【终结操作】对流中元素遍历,重写accept方法 |
count() | 【终结操作】获取当前流中元素的个数 |
max()&min() | 【终结操作】求流中的最值,重写compare方法 |
collection() | 【终结操作】将当前流转换成一个集合 |
anyMatch() / allMatch() / noneMatch() | 【终结操作】判断流中是否有符合匹配条件的元素 |
findAny() / findFirst() | 【终结操作】获取流中的任意一个元素/第一个元素。 |