获取流对象
方式一:
1. 单列集合对象可以直接调用一个stream方法,获取一个Stream流对象
2. 双列集合可以先获取键或者值或者键值对的集合,然后再获取Stream流对象
方式二:
通过Stream中的静态方法,可以将多个元素或者一个数组整合成一个Stream流对象
常用功能:
1. 【void】forEach(Consumer c) 遍历功能 终结方法
2. Stream<T> filter(Predicate p) 过滤功能 延迟方法
3. Stream<R> map(Function<T,R> mapper) 转换功能
4. 【long】 count() 统计元素个数
5. Stream<T> limit(long n) 截取前n个
6. Stream<T> skip(long n) 跳过前n个
7. Stream<T> sorted() 按照自然顺序排列
8. static <T> Stream<T> concat(Stream<T> a, Stream<T> b)
9. Object[] toArray() 将流中的元素整合成一个数组
10. R collect(Collector<? super T,A,R> collector) 将流中的元素整合成一个指定类型的集合
示范:
Set<String> set = stream.collect(Collectors.toSet())
List<String> list = stream.collect(Collectors.toList())
注意事项:
返回一个新的流对象只能使用一次
如果调用的是终结方法(forEach,count)则不能再次使用流
方法的引用:
本质:已经有现成的方法可以让我们去重写抽象方法
方法引用传递的第一种格式:
非静态方法的引用:对象名 :: 方法名
方法引用传递的第二种格式:
静态方法的引用: 类名 :: 方法名
方法引用传递的第三种格式:
本类中方法的引用:this :: 方法名
方法引用传递的第四种格式:
父类中方法的引用:super :: 方法名
构造方法引用的传递:
类名 :: new
数组构造的引用传递:
数据类型[] :: new
|
|