美文网首页
java8用法

java8用法

作者: 不善言谈_ | 来源:发表于2019-03-08 14:22 被阅读0次

    1.获取list<Object>中的某个属性并过滤非空,然后返回一个属性的list:

    List<Long> ids = userLoginLogList.stream().map(User::getId).filter(d -> d !=null ).collect(Collectors.toList());
    

    2.//取出所有id,并且不为null【Objects::nonNull】,并且去除重复【distinct()】

    List<Integer> userIdList = userInfoList.stream().map(UserInfo::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
    

    Collectors.groupingBy
    可以看到有三个参数,第一个参数就是key的Function了,第二个参数是一个map工厂,也就是最终结果的容器,一般默认的是采用的HashMap::new,最后一个参数很重要是一个downstream,类型是Collector,也是一个收集器,那就是说,这三个参数其实就是为了解决分组问题的:
    第一个参数:分组按照什么分类
    第二个参数:分组最后用什么容器保存返回
    第三个参数:按照第一个参数分类后,对应的分类的结果如何收集
    其实一个参数的Collectors.groupingBy方法的 ,第二个参数默认是HashMap::new, 第三个参数收集器其实默认是Collectors.toList
    3.List<String> 转String字符串并且以逗号分隔,并且转大写【map(String::toUpperCase)】,去重复【distinct()】.

    String joinStr= strList.stream().filter(Objects::nonNull).distinct().map(String::toUpperCase).collect(Collectors.joining(","));
    

    4.List<Map> mapList; 排序后分组:

    Map<String, List<Map<String, Object>>> integerListMap = mapList.stream().sorted(Comparator.comparing(d -> d.get("id").toString())).collect(Collectors.groupingBy(d -> d.get("id").toString(), LinkedHashMap::new, Collectors.toList()));
    

    相关文章

      网友评论

          本文标题:java8用法

          本文链接:https://www.haomeiwen.com/subject/nyrhpqtx.html