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

包装模板网站微信服务号菜单链接网站怎么做的

包装模板网站,微信服务号菜单链接网站怎么做的,网站建设的市场定位,公司官网怎么做文章目录前言假设业务场景排序前的准备正序排序1、数据集合的判空 Optional.isPresent()2、使用sort排序3、将排序后的数据流转换为list你以为这样就完了#xff1f;倒序排序前言 之前#xff0c;针对Stream链式编程中的几个方法做了大致的说明。详情可以参考#xff1a; J… 文章目录前言假设业务场景排序前的准备正序排序1、数据集合的判空 Optional.isPresent()2、使用sort排序3、将排序后的数据流转换为list你以为这样就完了倒序排序前言 之前针对Stream链式编程中的几个方法做了大致的说明。详情可以参考 JDK 1.8 新特性之Stream 详解个人笔记 但实际业务中总会存在很多复杂的思维需要使用到Stream此时玩的不熟练总感觉无从下手。 今后开始写几种常用的逻辑方式。 假设业务场景 在数据查询出来后需要针对集合中的数据信息按照某一字段进行正序或倒序排序。 排序前的准备 创建一个数据元类并填充数据做一个指定对象的数据集合。 class Users{private String userName;private String password;public Users(String userName, String password) {this.userName userName;this.password password;}public String getUserName() {return userName;}Overridepublic String toString() {return Users{ userName userName \ , password password \ };} }测试数据集合如下 ListUsers users Arrays.asList(new Users(xj5, 555), new Users(xj2, 2222), new Users(xj1, 1111), new Users(xj3, 3333));正序排序 Stream中的排序通常会使用到其中的sort()方法接下来就按步骤进行数据排序操作。 1、数据集合的判空 Optional.isPresent() 从数据库等其他方式获取到的数据并非就一定存在。虽然在本次定义了测试数据集合但为了代码逻辑的健壮性则需要经过如下操作处理。 System.out.println(----- Optional.ofNullable(null).isPresent()); System.out.println(----- Optional.ofNullable(new ArrayList()).isPresent());执行后的结果 ----- false ----- true所以上面的数据集合可以进行下列操作。 Optional.ofNullable(users).orElse(new ArrayListUsers())当然也可以通过Optional.ofNullable(集合别名).isPresent()判断集合是否存在再通过返回 boolean 判断是否继续向下执行链式编程代码。 2、使用sort排序 使用sort排序时如果其中是对象则还需要使用一个Comparator.comparing()的方法转换。 Optional.ofNullable(users).orElse(new ArrayListUsers()).stream().sorted(Comparator.comparing(Users::getUserName))3、将排序后的数据流转换为list ListUsers collect Optional.ofNullable(users).orElse(new ArrayListUsers()).stream().sorted(Comparator.comparing(Users::getUserName)).collect(Collectors.toList());执行后日志输出如下信息 [Users{userNamexj1, password1111},Users{userNamexj2, password2222}, Users{userNamexj3, password3333}, Users{userNamexj5, password555}]你以为这样就完了 Optional.ofNullable只是判断传递的参数是否为null如果传递的参数是对象则还需要注意对象中的每个属性的数据是否为null。 看一个反例如果其中某个对象的值是null时会出现什么样的情况 package xj.test.streams;import java.util.*; import java.util.stream.Collectors;public class Test6 {public static void main(String[] args) {ListUsers users Arrays.asList(new Users(xj5, 555), new Users(xj2, 2222), new Users(xj1, 1111), new Users(xj3, 3333), new Users(null,null));ListUsers collect Optional.ofNullable(users).orElse(new ArrayListUsers()).stream().sorted(Comparator.comparing(Users::getUserName)).collect(Collectors.toList());System.out.println(collect);} }此处出现空指针的问题在于Comparator.comparing中的数据元存在空的问题报错 解决方式也很简单将需要排序的字段在sort操作之前可以进行一次过滤如下 public class Test6 {public static void main(String[] args) {ListUsers users Arrays.asList(new Users(xj5, 555), new Users(xj2, 2222), new Users(xj1, 1111), new Users(xj3, 3333), new Users(null,null));ListUsers collect Optional.ofNullable(users).orElse(new ArrayListUsers()).stream().filter(x-Objects.nonNull(x) x.getUserName() ! null).sorted(Comparator.comparing(Users::getUserName)).collect(Collectors.toList());System.out.println(collect);} }成功解决 倒序排序 倒序排序操作并不是很复杂只需要在排序的Comparator.comparing(Users::getUserName)后将结果使用reversed()反转一下就可以实现。如下所示 public class Test6 {public static void main(String[] args) {ListUsers users Arrays.asList(new Users(xj5, 555), new Users(xj2, 2222), new Users(xj1, 1111), new Users(xj3, 3333), new Users(null,null));ListUsers collect Optional.ofNullable(users).orElse(new ArrayListUsers()).stream().filter(x-Objects.nonNull(x) x.getUserName() ! null).sorted(Comparator.comparing(Users::getUserName).reversed()).collect(Collectors.toList());System.out.println(collect);} }
http://www.w-s-a.com/news/830172/

相关文章:

  • 上海建设网站制作东西湖建设局网站
  • 建设购物网站课程设计建设部领导干部官方网站
  • 沈阳企业制作网站北京两学一做网站
  • 郑州做营销型网站手机网站建设多少钱一个
  • 小说类网站程序外贸商城 wordpress
  • 喀什百度做网站多少钱wordpress 用户介绍
  • 专门做任务的网站手机端网站重构
  • 深圳专业设计网站公司国际网站建设经验
  • 网站产品页排名怎么做网站备案起名要求
  • 成都企业网站建设及公司ppt生活分类信息网站大全
  • 免费企业网站源码下载学服装设计需要什么条件
  • 淘宝网站开发方式深圳平面设计公司排名榜
  • 品牌网站建设收费情况登陆页面模板
  • 十大免费cms建站系统介绍科技网站欣赏
  • 自学做网站需要多久semir是什么品牌
  • 南通网站搜索引擎优化网站首页seo关键词布局
  • 东莞市国外网站建设多少钱wordpress 多媒体插件
  • c2c商城网站建设公司做水果生意去哪个网站
  • 做网站服务器有哪些电子商务网站建立
  • 网站开发的具体流程原材料价格查询网站
  • 深圳响应式网站建设深圳网站建设定制开发 超凡科技
  • 网站建设报价怎么差别那么大wordpress产品属性搭配
  • 高校网站建设情况报告范文pc建站网站
  • 做网站美工要学什么广东省建设厅网站首页
  • 深圳网站设计十年乐云seo网站建设 竞赛 方案
  • 新乡移动网站建设wordpress输出某一分类的文章
  • 花店网站开发设计的项目结构重庆网站建设培训班
  • 做网站的技术体系投资者互动平台官网
  • 北京网站建设公司哪家实惠企查查在线查询入口
  • 毕业设计做网站怎么样非微信官方网页自己做的网站