public class StreamPlus {
public static void main(String[] args) {
//流的创建方式1---通过of方法
Integer[] integer = Stream.of(1, 2, 3).toArray(Integer[]::new);
//流的创建方式2---通过数据工具类的方法,可以通过截取方法获取数组的值
//取出数组下标为[1,3)的
Arrays.stream(integer,1,3).
collect(Collectors.toList()).forEach(s-> System.out.println(s));
//流的创建方式3-----通过集合形式
Stream<Integer> stream = Arrays.asList(1, 2, 3).stream();
//map
List<String> strings = Arrays.asList("a", "b", "c");
strings.stream().map(String::toUpperCase).collect(Collectors.toList()).forEach(a-> System.out.println(a));
List<Integer> integers = Arrays.asList(1, 2, 3);
integers.stream().filter(a->a>1).peek(a-> System.out.println(a)).mapToInt(a->a+1).forEach(a-> System.out.println(a));
//reduce()把 Stream 元素组合起来。它提供一个起始值(种子),然后依照运算规则(BinaryOperator),
// 和前面 Stream 的第一个、第二个、第 n 个元素组合。
System.out.println(integers.stream().reduce(0, Integer::sum).intValue());
System.out.println(strings.stream().reduce("-", String::concat));
//skip() 则是扔掉前 n 个元素
strings.stream().skip(2).forEach(s -> System.out.println(s));
//limit()则是获取前n个元素
strings.stream().limit(2).forEachOrdered(s -> System.out.println(s));
System.out.println("-----------------------------------");
//forEachOrdered()和forEach()主要在并行流上,前者严格有序执行,或者乱序执行
strings.parallelStream().forEachOrdered(s -> System.out.println(s));
strings.parallelStream().forEach(s -> System.out.println(s));
System.out.println("-----------------------------------");
//随机生成10个int类型
Random random = new Random();
Stream.generate(random::nextInt).limit(10).forEach(s-> System.out.println(s));
}
}
Stream流的简单使用
于 2021-04-16 09:10:28 首次发布