一分钟学会系列:JDK 8新特性

时间:2019-02-19
本文章向大家介绍一分钟学会系列:JDK 8新特性,主要包括一分钟学会系列:JDK 8新特性使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.function.Predicate;

class Scratch {

    interface MathOperation {
        int operation(int a, int b);
    }

    public static void main(String[] args) {

        String name = null;
        Optional<String> optName = Optional.ofNullable(name);

        System.out.println("========= orElse begin =========");
        System.out.println(optName.orElse("this name is null"));

        System.out.println("========= isPresent begin =========");
        optName = Optional.ofNullable("tangguoqiang");
        if (optName.isPresent()) {
            System.out.println(optName.get());
        }

        System.out.println("========== functional interface begin =========");
        MathOperation addition = (int a, int b) -> a + b;
        System.out.println(addition.operation(1, 3));

        List<String> nameList = new ArrayList<>(12);
        nameList.add("zhangsan");
        nameList.add("lisi");
        nameList.add("wangwu");
        nameList.add("zhangsan");

        System.out.println("========= foreach begin =========");
        nameList.stream().forEach(System.out::println);

        System.out.println("========= isPresent begin =========");
        Optional<String> optionalName = nameList.stream().findFirst();
        if (optionalName.isPresent()) {
            System.out.println(optionalName.get());
        }

        System.out.println("========= ifPresent begin =========");
        optionalName.ifPresent(value -> {
            System.out.println(value);
        });

        System.out.println("========= stream findFirst begin =========");
        Optional<String> firstName = nameList.stream().findFirst();
        System.out.println(firstName.isPresent());

        System.out.println("========= stream findFirst isPresent begin =========");
        System.out.println(nameList.stream().findFirst().isPresent());

        System.out.println("========= stream filter begin =========");
        System.out.println(nameList.stream().filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
                if (s.contains("wang")) {
                    return true;
                }
                return false;
            }
        }).findFirst());

        System.out.println("========= parallelStream count begin =========");
        System.out.println(nameList.parallelStream().count());

        System.out.println("========= paralleStream distinct begin =========");
        System.out.println(nameList.parallelStream().distinct().count());

    }
}