当前位置: 首页 > news >正文

网站建设实训 课程标准关岭做网站

网站建设实训 课程标准,关岭做网站,网站开发 数字证书,设计网校目录 前言正文第一个小玩法 将集合通过Stream.collect() 转换成其他集合/数组#xff1a;第二个小玩法 聚合#xff08;求和、最小、最大、平均值、分组#xff09;总结前言 本身我是一个比较偏向少使用Stream的人#xff0c;因为调试比较不方便。 但是, 不得不说#…目录 前言正文第一个小玩法 将集合通过Stream.collect() 转换成其他集合/数组第二个小玩法 聚合求和、最小、最大、平均值、分组总结前言 本身我是一个比较偏向少使用Stream的人因为调试比较不方便。 但是, 不得不说stream确实会给我们编码带来便捷。 正文 Stream流 其实操作分三大块   创建 处理  收集 我今天想分享的是 收集 这part的玩法。 OK开始结合代码示例一起玩下 lombok依赖引入代码简洁一点 1 2 3 4 5 6 dependency     groupIdorg.projectlombok/groupId     artifactIdlombok/artifactId     version1.18.20/version     scopecompile/scope /dependency 准备一个UserDTO.java  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 /**  * Author: JCccc  * Date: 2022-9-20 01:25  * Description:  */ Data public class UserDTO {        /**      * 姓名      */     private  String name;     /**      * 年龄      */     private  Integer age;     /**      * 性别      */     private  String sex;     /**      * 是否有方向      */     private  Boolean hasOrientation; } 准备一个模拟获取List的函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 private static ListUserDTO getUserList() {     UserDTO userDTO new UserDTO();     userDTO.setName(小冬);     userDTO.setAge(18);     userDTO.setSex(男);     userDTO.setHasOrientation(false);     UserDTO userDTO2 new UserDTO();     userDTO2.setName(小秋);     userDTO2.setAge(30);     userDTO2.setSex(男);     userDTO2.setHasOrientation(true);     UserDTO userDTO3 new UserDTO();     userDTO3.setName(春);     userDTO3.setAge(18);     userDTO3.setSex(女);     userDTO3.setHasOrientation(true);     ListUserDTO userList new ArrayList();     userList.add(userDTO);     userList.add(userDTO2);     userList.add(userDTO3);     return userList; } 第一个小玩法 将集合通过Stream.collect() 转换成其他集合/数组 现在拿ListUserDTO 做例子 转成  HashSetUserDTO 1 2 3 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); HashSetUserDTO usersHashSet usersStream.collect(Collectors.toCollection(HashSet::new)); 转成  SetUserDTO usersSet 1 2 3 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); SetUserDTO usersSet usersStream.collect(Collectors.toSet()); 转成  ArrayListUserDTO 1 2 3 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); ArrayListUserDTO usersArrayList usersStream.collect(Collectors.toCollection(ArrayList::new)); 转成  Object[] objects 1 2 3 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); Object[] objects usersStream.toArray(); 转成  UserDTO[] users 1 2 3 4 5 6 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); UserDTO[] users usersStream.toArray(UserDTO[]::new); for (UserDTO user : users) {     System.out.println(user.toString()); } 第二个小玩法 聚合求和、最小、最大、平均值、分组 找出年龄最大 stream.max 写法 1 1 2 3 4 5 6 7 8 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); OptionalUserDTO maxUserOptional         usersStream.max((s1, s2) - s1.getAge() - s2.getAge()); if (maxUserOptional.isPresent()) {     UserDTO masUser maxUserOptional.get();     System.out.println(masUser.toString()); } 写法2  1 2 3 4 5 6 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); OptionalUserDTO maxUserOptionalNew usersStream.max(Comparator.comparingInt(UserDTO::getAge)); if (maxUserOptionalNew.isPresent()) {     UserDTO masUser maxUserOptionalNew.get();     System.out.println(masUser.toString()); } 效果 输出 UserDTO(name小秋, age30, sex男, hasOrientationtrue) 找出年龄最小 stream.min 写法 1 1 2 3 4 5 OptionalUserDTO minUserOptional usersStream.min(Comparator.comparingInt(UserDTO::getAge)); if (minUserOptional.isPresent()) {     UserDTO minUser minUserOptional.get();     System.out.println(minUser.toString()); } 写法2  1 OptionalUserDTO min usersStream.collect(Collectors.minBy((s1, s2) - s1.getAge() - s2.getAge())); 求平均值 1 2 3 ListUserDTO userList getUserList(); StreamUserDTO usersStream userList.stream(); Double avgScore usersStream.collect(Collectors.averagingInt(UserDTO::getAge)); 效果 求和 写法1 1 Integer reduceAgeSum usersStream.map(UserDTO::getAge).reduce(0, Integer::sum); 写法2 1 int ageSumNew usersStream.mapToInt(UserDTO::getAge).sum(); 统计数量 1 long countNew usersStream.count(); 简单分组 按照具体年龄分组: 1 2 //按照具体年龄分组 MapInteger, ListUserDTO ageGroupMap usersStream.collect(Collectors.groupingBy((UserDTO::getAge))); 效果  分组过程加写判断逻辑 1 2 3 4 5 6 7 8 //按照性别 分为男一组  女一组 MapInteger, ListUserDTO groupMap usersStream.collect(Collectors.groupingBy(s - {     if (s.getSex().equals(男)) {         return 1;     } else {         return 0;     } })); 效果 多级复杂分组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //多级分组 // 1.先根据年龄分组 // 2.然后再根据性别分组 MapInteger, MapString, MapInteger, ListUserDTO moreGroupMap usersStream.collect(Collectors.groupingBy(         //1.KEY(Integer)             VALUE (MapString, MapInteger, ListUserDTO)         UserDTO::getAge, Collectors.groupingBy(                 //2.KEY(String)             VALUE (MapInteger, ListUserDTO)                 UserDTO::getSex, Collectors.groupingBy((userDTO) - {                     if (userDTO.getSex().equals(男)) {                         return 1;                     } else {                         return 0;                     }                 })))); 效果 总结 到此这篇关于Java8 Stream教程之collect()技巧的文章就介绍到这了,更多相关Java8 Stream collect()技巧内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家
http://www.dnsts.com.cn/news/261297.html

相关文章:

  • 建晨网站建设做电影网站选服务器
  • 国外优秀网站wordpress 点击加微信
  • 杭州网站维护小程序搜索排名帝搜sem880官网
  • 简单 网站微信开放平台怎么解除
  • 网页制作素材是什么百度首页排名优化公司
  • 网站出现风险如何处理立邦刷新服务多少钱一平米
  • 西安seo搜推宝实时seo排名点击软件
  • 做网站的骗术织梦做中英文网站详细步骤
  • 上海最好网站建设公司南平购物网站开发设计
  • 网站建设项目管理绩效情况分析高端网咖
  • 江西南昌网站建设哪家公司好什么是网站国内高速空间
  • 做网站认证违法吗左侧固定导航栏的网站
  • 安徽企业网站建设wordpress 怎么登陆
  • 用dw制作个介绍家乡网站ios7 风格 网站
  • app试玩网站制作盘州市城乡建设局网站
  • 栅格布局 网站设计哪些网站容易做
  • 北京规划网站wordpress 通用代码
  • 汕头市做网站易店无忧官网
  • 怎么看一个网站做没做竞价免费公网服务器
  • 网站联盟营销消除wordpress
  • 湖南沙坪建设集团有限公司网站网站备案是需要去哪里做
  • 天津网站开发平台本地房产交易信息网
  • 网站建设的实验结论马蜂窝网站做的重点
  • 一个网站需要怎么做海口网站建设咨询
  • 福州网站建设询q479185700上快炉石吐司做的网站
  • 一般用什么做网站首页网站建设的栏目策划
  • 海外 网站 推广wordpress安装卡住了
  • 松江网站建设推广Https全局wordpress
  • 建设网站会员湖北省城乡建设厅网站首页
  • 韩国网站设计欣赏做网站优化的好处