Java8-Stream-No.05

简介: import java.util.Arrays;import java.util.List;import java.util.function.Supplier;import java.

import java.util.Arrays;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Stream;

public class Streams5 {

    public static void main(String[] args) {
        List<String> strings =
            Arrays.asList("d2", "a2", "b1", "b3", "c");

//        test1(strings);
//        test2(strings);
//        test3(strings);
//        test4(strings);
//        test5(strings);
//        test6(strings);
//        test7(strings);
        test8(strings);
    }

    private static void test8(List<String> stringCollection) {
        Supplier<Stream<String>> streamSupplier =
            () -> stringCollection
                .stream()
                .filter(s -> s.startsWith("a"));

        streamSupplier.get().anyMatch(s -> true);
        streamSupplier.get().noneMatch(s -> true);
    }

    // stream has already been operated upon or closed
    private static void test7(List<String> stringCollection) {
        Stream<String> stream = stringCollection
            .stream()
            .filter(s -> s.startsWith("a"));

        stream.anyMatch(s -> true);
        stream.noneMatch(s -> true);
    }

    // short-circuit
    private static void test6(List<String> stringCollection) {
        stringCollection
            .stream()
            .map(s -> {
                System.out.println("map:      " + s);
                return s.toUpperCase();
            })
            .anyMatch(s -> {
                System.out.println("anyMatch: " + s);
                return s.startsWith("A");
            });
    }

    private static void test5(List<String> stringCollection) {
        stringCollection
            .stream()
            .filter(s -> {
                System.out.println("filter:  " + s);
                return s.toLowerCase().startsWith("a");
            })
            .sorted((s1, s2) -> {
                System.out.printf("sort:    %s; %s\n", s1, s2);
                return s1.compareTo(s2);
            })
            .map(s -> {
                System.out.println("map:     " + s);
                return s.toUpperCase();
            })
            .forEach(s -> System.out.println("forEach: " + s));
    }

    // sorted = horizontal
    private static void test4(List<String> stringCollection) {
        stringCollection
            .stream()
            .sorted((s1, s2) -> {
                System.out.printf("sort:    %s; %s\n", s1, s2);
                return s1.compareTo(s2);
            })
            .filter(s -> {
                System.out.println("filter:  " + s);
                return s.toLowerCase().startsWith("a");
            })
            .map(s -> {
                System.out.println("map:     " + s);
                return s.toUpperCase();
            })
            .forEach(s -> System.out.println("forEach: " + s));
    }

    private static void test3(List<String> stringCollection) {
        stringCollection
            .stream()
            .filter(s -> {
                System.out.println("filter:  " + s);
                return s.startsWith("a");
            })
            .map(s -> {
                System.out.println("map:     " + s);
                return s.toUpperCase();
            })
            .forEach(s -> System.out.println("forEach: " + s));
    }

    private static void test2(List<String> stringCollection) {
        stringCollection
            .stream()
            .map(s -> {
                System.out.println("map:     " + s);
                return s.toUpperCase();
            })
            .filter(s -> {
                System.out.println("filter:  " + s);
                return s.startsWith("A");
            })
            .forEach(s -> System.out.println("forEach: " + s));
    }

    private static void test1(List<String> stringCollection) {
        stringCollection
            .stream()
            .filter(s -> {
                System.out.println("filter:  " + s);
                return true;
            })
            .forEach(s -> System.out.println("forEach: " + s));
    }

}
目录
相关文章
|
12月前
|
Java
Java 8 - Stream实战
Java 8 - Stream实战
92 0
|
Java 测试技术
Java基础之Stream
  流表示一系列元素并支持不同类型的操作来对这些元素执行计算。在Java 8中,Collection接口有两种方法来生成Stream   stream()parallelStream()   流操作包括中间或终端,中间操作返回一个流,所以我们可以链接多个中间操作而不使用分号。 终端操作是void的或返回非流结果。   Stream是可以执行顺序和并行聚合操作的一系列元素 。 任何给定的“Stream”都可能有无限量的数据流过它。 你所得到的结果是从“Stream”接收的数据在到达时被单独处理,而不是完全对数据执行批处理。 当与lambda表达式 结合时,它们提供了使用函数方法对数据序列执
109 0
|
Java
Java 8 Stream--开发手册
什么是Java8 Stream,为什么需要Stream? Stream是Java8一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。
1391 0
|
Python
Java8-Stream-No.11
import java.util.Arrays; import java.util.List; public class Streams11 { static class Person { String name; int age; ...
848 0
|
数据库管理
Java8-Stream-No.12
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.
798 0
Java8-Stream-No.13
import java.security.SecureRandom; import java.util.Arrays; import java.util.stream.IntStream; public class Streams13 { public static...
744 0
Java8-Stream-No.06
import java.io.IOException; import java.math.BigDecimal; import java.util.Arrays; import java.
865 0
Java8-Stream-No.07
import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; public class Streams7 { static class Foo { ...
791 0
Java8-Stream-No.01
import java.util.ArrayList; import java.util.List; import java.util.Optional; public class Streams1 { public static void main(String[...
775 0