JDK8新特性之Stream流03

收集Stream流中的结果

IntStream intStream = Stream.of(1, 2, 3, 4, 5).mapToInt(Integer::intValue);

intStream.filter(n -> n > 3).forEach(System.out::println);

intStream.filter(n -> n > 3).count;

intStream.filter(n -> n > 3).reduce(0, Integer::sum);

对流操作完成之后,如果需要将流的结果保存到数组或这集合中,可以收集流中的数据。

收集Stream流中的结果到集合中

Stream流提供了collect 方法,其参数需要一个java.util.stream.Collecto<T,A,R>接口对象来指定收集到哪种集合中,java.util.stream.Collectors类提供一些方法,可以作为Collector接口的实例:

public static <T> Collector<T, ?, List<T>> toList():转换为List集合。
public static <T> Collector<T, ?, Set<T>> toSet():转换为Set集合。

下面是两个方法的基本使用代码:

public class StreamCollection {
    public static void main(String[] args) {
        //将流中的数据收集到集合中
        Stream<String> stream01 = Stream.of("aa", "bb", "cc");
        Stream<String> stream02 = Stream.of("aa", "bb", "cc");

        //将流中的数据收集到List集合中
        final List<String> listcollect = stream01.collect(Collectors.toList());
        System.out.println("流处理后的数据结果(List):");
        for (String s: listcollect ) {
            System.out.println(s);
        }
        //将流中的数据收集到Set集合中
        final Set<String> setcollect1 = stream02.collect(Collectors.toSet());
        System.out.println("流处理后的数据结果(Set):");
        for (String s: setcollect1 ) {
            System.out.println(s);
        }

    }
}

收集Stream流中的结果到数组中

Stream提供了toArray 方法来将结果放到一个数组中,返回值是Object[]的:

Object[] toArray(); 

基本使用代码:

public class StreamToArray {
    public sta
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值