Stream流中的常用方法-forEach和Filter方法

Stream流中的常用方法-forEach

 

 

流模型的操作很丰富,这里介绍一些常用的APlI。这些方法可以被分成两种︰

延迟方法︰返回值类型仍然是Stream 接口自身类型的方法,因此支持链式调用。(除了终结方法外 ,其余方法均为延迟方法。)

终结方法∶返回值类型不再是stream 接口自身类型的方法,因此不再支持类似stringBuilder 那样的链式调用

/*
    Stream流中的常用方法_forEach
    void forEach(Consumer<? super T> action);
    该方法接收一个Consumer接口函数,会将每一个流元素交给该函数进行处理。
    Consumer接口是一个消费型的函数式接口,可以传递Lambda表达式,消费数据
    简单记:
        forEach方法,用来遍历流中的数据
        是一个终结方法,遍历之后就不能继续调用Stream流中的其他方法
 */
public class Demo02Stream_forEach {
    public static void main(String[] args) {
        //获取一个Stream流
        Stream<String> stream = Stream.of("张三", "李四", "王五", "赵六", "田七");
        //使用Stream流中的方法forEach对Stream流中的数据进行遍历
        /*stream.forEach((String name)->{
            System.out.println(name);
        });*/
 
        stream.forEach(name->System.out.println(name));
    }
}

 

Stream流中的常用方法-Filter

 

 

/*
filter方法的参数Predicate是一个函数式接口,所以可以传递Lambda表达式,
对数据进行过滤
Predicate中的抽象方法:
    boolean test(T t);
 */
public class Demo03Stream_filter {
    public static void main(String[] args) {
        //创建一个Stream流
        Stream<String> stream = Stream.of("张三丰", "张翠山", "赵敏", "周芷若", "张无忌");
        //对Stream流中的元素进行过滤,只要姓张的人
        Stream<String> stream2 = stream.filter(name -> name.startsWith(""));
        //遍历stream2流
        stream2.forEach(name-> System.out.println(name));
    }
}

 

posted @ 2022-07-20 09:36  漁夫  阅读(455)  评论(0)    收藏  举报