Java 8 流过滤List

// 获得小于18岁的用户对象

List<User> list = userList.stream().filter(o ->o.getAge()<18).collect(Collectors.toList());

//获得小于18岁的用户名字


List<String> list = userList.stream() .filter(o -> o.getAge()<18)
                    .map(User::getName).collect(Collectors.toList());

// 获得身份证为key,用户对象为value的map

Map<String,User> userMap = userList.stream().collect(Collectors.toMap(o -> o.getIdNumber(), o -> o));

// 通过名字分组

Map<String,List<User>> map = userList.stream()
                .collect(Collectors.groupingBy(o -> o.getName()));

// 去重

insertList = insertList.stream().collect(Collectors.toSet()).stream().collect(Collectors.toList());

// 用户按创建年份分组


Map<Date,List<User>> userList = list.stream().collect(Collectors.groupingBy(o->DateUtil.getCurrYearFirst(o.getCreateDate())));//DateUtil.getCurrYearFirst()返回的是时间的年份

// 计算合计

Double totalSale = saleList.stream().filter(o -> o.getMoney() != null).mapToDouble(a -> a.getMoney()).sum();

这个是网上抄的关于计算

// 获取数字的个数、 最小值、 最大值、 总和以及平均值
            List<Integer> list = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);
            //IntSummaryStatistics:集合概要例如: count, min, max, sum, and average.
            IntSummaryStatistics stats = list//
                    .stream()//获取Stream对象
                    .mapToInt((x) -> x)//格式转换
                    .summaryStatistics();//
            System.out.println("Max : " + stats.getMax());
            System.out.println("Min: " + stats.getMin());
            System.out.println("Sun: " + stats.getSum());
            System.out.println("Average : " + stats.getAverage());
--------------------- 
原文:https://blog.csdn.net/qq_15988951/article/details/53914146 

 

遇到在持续更新!

    原文作者:DavidSoCool
    原文地址: https://blog.csdn.net/DavidSoCool/article/details/82225610
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞