java新特性stream

java新特性stream,也称为流式编程。

在学习stream之前先了解一下java内置的四大函数

 第一种函数式函数,后面是lambda表达式写法

     /*Function<String,Integer> function = new Function<String, Integer>() {
            @Override
            public Integer apply(String s) {
                return null;
            }
        };*/
//函数式 有请求参数和返回值 Function<String, Integer> function = s -> { return 1024; }; System.out.println(function.apply("函数式"));

 第二种布尔型函数(断定型参数)

     /*  Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return false;
            }
        };*/
        //布尔型函数(断定型参数) 有请求参数和返回boolean值
        Predicate<String> predicate = s -> {
            return s.isEmpty();
        };
        System.out.println(predicate.test("sss"));

 第三种消费型函数

/*  Consumer<String> consumer = new Consumer<String>() {
            @Override
            public void accept(String s) {

            }
        };*/
        //消费型函数 有请求参数和无返回值
        Consumer<String> consumer = s -> {
            System.out.println(s);
        };
        consumer.accept("java ");

 第四种

     /*Supplier<String> supplier = new Supplier() {
        @Override
        public String get() {
            return null;
        }
      };*/

        //供给型函数 无请求参数和有返回值
        Supplier<String> supplier = ()-> {
            return "hello";
        };
        System.out.println(supplier.get());

    }

 我们再看一下stream常用方法:

filter:里面传入一个Predicate布尔型函数,里面返回布尔值
Stream<T> filter(Predicate<? super T> predicate)

forEach:里面传入Consumer消费型函数,有请求参数和无返回值
void forEach(Consumer<? super T> action)

map:里面传入Function函数式 有请求参数和返回值
<R> Stream<R> map(Function<? super T,? extends R> mapper)

generate:里面传入Supplier供给型函数 无请求参数和有返回值
static <T> Stream<T> generate(Supplier<T> s)

待更。
原文地址:https://www.cnblogs.com/tdyang/p/11869898.html