java 8 stream

java 8 stream

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.LongSummaryStatistics;
import java.util.stream.Collectors;

public class Java8Stream {

    public static class CouponInfo {
        private Long capacity;
        private Integer number;
        private String messageString;

        public Long getCapacity() {
            return capacity;
        }

        public void setCapacity(Long capacity) {
            this.capacity = capacity;
        }

        public Integer getNumber() {
            return number;
        }

        public void setNumber(Integer number) {
            this.number = number;
        }

        public String getMessageString() {
            return messageString;
        }

        public void setMessageString(String messageString) {
            this.messageString = messageString;
        }

        public CouponInfo(Long capacity, Integer number, String messageString) {
            super();
            this.capacity = capacity;
            this.number = number;
            this.messageString = messageString;
        }

        public CouponInfo() {
            super();
            // TODO Auto-generated constructor stub
        }

    }

    public static void main(String[] args) {

        CouponInfo couponInfo1 = new CouponInfo(123L10001"5元现金券");
        CouponInfo couponInfo2 = new CouponInfo(124L10001"10元现金券");
        CouponInfo couponInfo3 = new CouponInfo(125L10002"全场9折");
        CouponInfo couponInfo4 = new CouponInfo(126L10002"全场8折");
        CouponInfo couponInfo5 = new CouponInfo(127L10003"全场7折");

        List<CouponInfo> couponInfoList = new ArrayList<>();
        couponInfoList.add(couponInfo1);
        couponInfoList.add(couponInfo2);
        couponInfoList.add(couponInfo3);
        couponInfoList.add(couponInfo4);
        couponInfoList.add(couponInfo5);

        // stream foreach
        foreach(couponInfoList);
        // stream filter
        filter(couponInfoList);
        // limit
        limit(couponInfoList);
        // sort
        sort(couponInfoList);
        // map
        map(couponInfoList);
        // statistic
        statistic(couponInfoList);
    }

    public static void foreach(List<CouponInfo> couponInfoList) {
        couponInfoList.stream().forEach(n -> System.out.print(n));
        System.out.println();
    }

    public static void filter(List<CouponInfo> couponInfoList) {
        couponInfoList.stream().filter(n -> n.getCapacity() > 126L).forEach(n -> System.out.print(n.getCapacity()));
        System.out.println();
    }

    public static void limit(List<CouponInfo> couponInfoList) {
        couponInfoList.stream().limit(3).forEach(n -> System.out.print(n.getCapacity()));
        System.out.println();
    }

    public static void sort(List<CouponInfo> couponInfoList) {
        couponInfoList.stream().sorted(Comparator.comparing(CouponInfo::getCapacity).reversed())
                .forEach(n -> System.out.print(n.getCapacity()));
        System.out.println();
    }

    public static void map(List<CouponInfo> couponInfoList) {
        couponInfoList.stream().map(n -> n.getCapacity() * 2).forEach(n -> System.out.print(n));
        System.out.println();
    }

    public static void statistic(List<CouponInfo> couponInfoList) {
        List<Long> lists = couponInfoList.stream().map(n -> n.getCapacity()).collect(Collectors.toList());
        LongSummaryStatistics res = lists.stream().mapToLong(n -> n).summaryStatistics();
        System.out.println(res.getAverage());
        System.out.println(res.getCount());
        System.out.println(res.getMax());
        System.out.println(res.getMin());
        System.out.println(res.getSum());
    }
}
posted @   小傻孩丶儿  阅读(244)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示