- filter()
filter()方法是用来过滤数据,只保存满足条件的数据
特点:数据会变得越来越少,但数据类型和数据的元素值不会发生任何改变 - map()
map映射的特点:
(1)返回的仍然是一个数组
(2)映射后的新数组元素个数和原数组个数相同
(3)不保证映射的数据类型 - reduce()
reduce() 中的第一个参数的含义是reduce做数据统计返回的数据类型和默认初始值
第二个参数是一个功能性接口:消费2个数据
第一个数据:代表的是reduce统计的结果,他的初始值是reduce第一个参数的值
第二个数据:代表数组中的每一个要处理的元素
返回的数据指的是统计的结果,会自动赋值给第一消费的数据
// 创建一个 长度为5的只读集合
List<Integer> of = List.of(10, 210, 10, 34, 65);
of = new ArrayList<>(of);
对集合中的元素进行去重
List integers = of.stream().distinct().toList();
使用 reduce 进行去重
List list = of.stream().reduce(new ArrayList<>(),
(lt, ele) -> {
if (!lt.contains(ele)) lt.add(ele);
return lt;
}, (a, b) -> a);
//对上述集合进行排序
>of.sort(Comparator.reverseOrder());
// Collections 工具类实现集合的排序
>Collections.sort(of, Comparator.reverseOrder())
// 使用 stream 进行排序
> of.stream().sorted(Comparator.reverseOrder()).toList();
System.out.println(integers)
` ` `
获取 集合中前三个元素
>of.stream().limit(3).toList();
>
将 集合中的数据按照升序排列、并获取第 3 ~ 6 之间的元素元素
of.stream().sorted()
.limit(6)
.sorted(Comparator.reverseOrder())
.limit(4)
.sorted()
.toList();
获取 集合中4-8个元素
>of.stream().skip(3).limit(4).toList();
获取集合中元素直到不满足条件为止
>of.stream().takeWhile(s -> s > 10).collect(Collectors.toList())
删除集合中满足条件的元素,直到不满足条件为止
>of.stream().dropWhile(s -> s > 10).toList()
判断集合中是否 有任意 一个元素 小于 10
>of.stream().anyMatch(s -> s < 10)
判断集合中所有元素 都不满足条件
of.stream().noneMatch(s -> s > 100)