切换主题
十五、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) | 收集中的数据,放到集合中 |