切换主题
十五、Stream流
一、使用
| 获取方式 | 方法名 | 说明 |
|---|---|---|
| 单列集合 | default Stream<E> stream() | Collection中的默认方法 |
| 双列集合 | 无 | 无法直接使用stream流 |
| 数组 | public static <T> Stream<T> stream(T[] array) | Arrays工具类中的静态方法 |
| 一堆零散数据 | public static <T> Stream<T> of(T...values) | Stream接口中的静态方法 |
1、单列集合
java
ArrayList<String> list = new ArrayList<>()
list.stream().forEach(s -> System.out.println(s));2、双列集合
java
HashMap<String> hm = new HashMap<>()
hm.entrySet().stream().forEach(s -> System.out.println(s));3、数组
java
int[] arr = {1,2,3,4,5,6,7,8,9};
Arrays.stream(arr).forEach(s -> System.out.println(s));4、零散数据
java
Stream.of(1,2,3,4,5).forEach(s -> System.out.println(s));二、中间方法
| 名称 | 说明 |
|---|---|
| Stream<T> filter(Predicate<? super T> predicate) | 过滤 |
| Stream<T> limit(long maxSize) | 获取前几个元素 |
| Stream<T> skip(long n) | 跳过前几个元素 |
| Stream<T> distinct() | 元素去重,依赖(HashCode和equals方法) |
| static <T> Stream<T> concat(Stream a,Stream b) | 合并a和b两个流为一个流 |
| Stream<R> map(Function<T,R> mapper) | 转换流中的数据类型 |
三、终结方法
| 名称 | 说明 |
|---|---|
| void forEach(Consumer action) | 遍历 |
| long count() | 统计 |
| toArray() | 收集中的数据,放到数组中 |
| collect(Collector collector) | 收集中的数据,放到集合中 |
DQ博客