Stream操作

    public static void main(String[] args) {
        List<Parking> parkings = Arrays.asList(Parking.builder().build().setParkingName("白天车场").setNumber(111),
                Parking.builder().build().setParkingName("夜晚车场").setNumber(222),
                Parking.builder().build().setParkingName("夜晚车场").setNumber(222));

        //1、forEach:forEach循环,获取每一个元素
        parkings.stream().forEach(parking -> System.out.println("***" + parking.getParkingName()));

        //2、map:映射,映射每个元素到对应的结果,生成新的集合
        parkings.stream().map(Parking::getParkingName).collect(Collectors.toList()).forEach(System.out::println);

        //3、filter:条件过滤,过滤掉条件中的集合
        parkings.stream().filter(parking -> parking.getNumber() == 222).collect(Collectors.toList());

        //4、count:获取集合数量
        System.out.println(parkings.stream().filter(parking -> parking.getNumber() == 222).count());

        //5、distinct:去重
        parkings.stream().map(Parking::getNumber).distinct().collect(Collectors.toList()).forEach(System.out::println);

        //6、limit:获取指定数量流
        new Random().ints().limit(10).forEach(System.out::println);

        //7、sorted:用于对流进行排序
        new Random().ints().limit(10).sorted().forEach(System.out::println);

        //8、parallelStream:并行流    stream:串行流
        System.out.println(parkings.parallelStream().count());

        /**
         *  9、collect:对Stream进行处理,返回新的对象
         *  Collectors.toList():返回List集合
         *  Collectors.joining():字符串拼接
         */
        System.out.println(parkings.stream().map(Parking::getParkingName).collect(Collectors.joining(",")));

        /**
         * 10:summaryStatistics:统计操作
         * getMax:最大值
         * getMin:最小值
         * getSum:所有数之和
         * getAverage:平均数
         */
        List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
        IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();

        System.out.println("列表中最大的数 : " + stats.getMax());
        System.out.println("列表中最小的数 : " + stats.getMin());
        System.out.println("所有数之和 : " + stats.getSum());
        System.out.println("平均数 : " + stats.getAverage());
    }
posted @ 2020-11-10 11:45  SweetBaby。  阅读(94)  评论(0编辑  收藏  举报