441stream流中的常用方法_forEach和442Stream流中的常用方法_filter

常用方法forEach

 

 

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

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

终结方法︰返回值类型不再是Stream接口自身类型的方法,因此不再支持类似stringBuilder那样的链式调用。本小节中,终结方法包括`|count和 forEach方法。

备注:本小节之外的更多方法,请自行参考API文档。

逐一处理一:forEach

虽然方法名字叫forEach,但是于for循环中的”for-each“昵称不同

/*
stream流中的常用方法_forEach
void forEach(Consumer< ? super T> action ) ;
该方法接收一个consumer接口函数,会将每一个流元素交给该函数进行处理。l

简单记:
forEach方法,用来遍历流中的数据
是一个终结方法,遍历之后就不能继续调用Stream流中的其他方法
 */    
public static void main(String[] args) {
        //获取一个Stream流
        Stream<String> stream = Stream.of("杰瑞", "汤姆", "泰非", "派克", "橘猫");

        //使用Stream流中的方法forEach对Stream流中的数据进行遍历
        stream.forEach(name->System.out.println(name));
    }
}

常用方法Filter

可以通过filter方法将一个流转换成另一个子集流。方法签名

stream<T> filter(Predicate<? super T> predicate);

当前我们已经学习过java.util.stream.Predicate函数式接口,其中唯一的抽象方法;

Boolean test(T t);

 该方法将会产生一个boolean值结果,代表指定的条件是否满足。如果结果为true,那么Stream流的filter方法将会留用元素;如果结果为false,那么filter方法将会舍弃元素。

    public static void main(String[] args) {
        //创建一个stream
        Stream<String> stream = Stream.of("杰瑞", "汤姆", "杰瑞大表舅", "杰瑞舅老爷","泰非");
        //对Stream流中的元素进行过滤只要姓杰的
        Stream<String>stream1=stream.filter((String name)->{return name.startsWith("杰");});
        //遍历stream1流
        stream1.forEach(name-> System.out.println(name));
    }
}

 

posted @ 2022-09-22 22:53  ja不会va  阅读(60)  评论(0)    收藏  举报