111 lines
2.7 KiB
Java
111 lines
2.7 KiB
Java
package cn.bunny.stream;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.Collection;
|
||
import java.util.List;
|
||
import java.util.concurrent.ThreadLocalRandom;
|
||
import java.util.stream.Stream;
|
||
|
||
public class StreamExample02 {
|
||
public static void main(String[] args) {
|
||
Stream<Object> stream = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}}.stream();
|
||
|
||
// 去重操作
|
||
stream.distinct().forEach(System.out::println);
|
||
|
||
stream = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}}.stream();
|
||
|
||
// 过滤器,满足值为2的筛选
|
||
stream.filter(x -> x.equals(2)).forEach(System.out::println);
|
||
|
||
stream = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}}.stream();
|
||
|
||
// 选择序列个数为3
|
||
stream.limit(3).forEach(System.out::println);
|
||
|
||
stream = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}}.stream();
|
||
|
||
// 映射,可以修改原本的类型
|
||
stream.map(Object::toString).forEach(System.out::println);
|
||
|
||
stream = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}}.stream();
|
||
|
||
// 跳过前两个数
|
||
stream.skip(2).forEach(System.out::println);
|
||
|
||
stream = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}}.stream();
|
||
|
||
// 不会使元素数据、类型产生改变
|
||
stream.peek(x -> ThreadLocalRandom.current().nextInt(100)).limit(10).forEach(System.out::println);
|
||
|
||
stream = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}}.stream();
|
||
|
||
// 从小到大排序
|
||
stream.sorted().forEach(System.out::println);
|
||
|
||
// 提供重载方法
|
||
// stream.sorted(Comparator.comparing(Object::toString)).forEach(System.out::println);
|
||
|
||
ArrayList<Integer> list = new ArrayList<>() {{
|
||
add(1);
|
||
add(2);
|
||
add(2);
|
||
add(3);
|
||
add(3);
|
||
add(4);
|
||
}};
|
||
List<ArrayList<Integer>> arrayListList = List.of(list);
|
||
|
||
// 扁平化数组
|
||
arrayListList.stream().flatMap(Collection::stream).forEach(System.out::println);
|
||
}
|
||
} |