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

湘潭网站建设 水平磐石网络北京网站建设公司报价

湘潭网站建设 水平磐石网络,北京网站建设公司报价,提供网站建设服务的网站,宣传片拍摄设备清单最近做到一个需求#xff0c;需要把业务侧返回的数据#xff08;格式为ListJSONObject#xff09;,然后根据前端传来的排序字段、以及升降序属性来排序并返回给前端。要对ListJSONObject中的多个属性字段进行动态的升序或降序排序#xff0c;我们可以根据需…        最近做到一个需求需要把业务侧返回的数据格式为ListJSONObject,然后根据前端传来的排序字段、以及升降序属性来排序并返回给前端。要对ListJSONObject中的多个属性字段进行动态的升序或降序排序我们可以根据需要使用Comparator.comparing()方法和Comparator.reverseOrder()方法运用lambda表达式动态指定属性字段和排序顺序。以下是自己写的一个示例代码演示了如何实现动态的降序和升序排序仅供参考。      public static void main(String[] args) {ListJSONObject jsonList new ArrayList();// 添加JSONObject对象到List中JSONObject json1 new JSONObject();json1.put(id, 1);json1.put(name, Alice);json1.put(age, 25);JSONObject json2 new JSONObject();json2.put(id, 2);json2.put(name, Alice);json2.put(age, 30);JSONObject json3 new JSONObject();json3.put(id, 3);json3.put(name, Bob);json3.put(age, 20);jsonList.add(json1);jsonList.add(json2);jsonList.add(json3);ListString sortProperties new ArrayList();//动态指定要排序的属性字段//此处可以根据业务需要传具体字段此处测试就先写死sortProperties.add(name);sortProperties.add(age);MapString,Boolean sortOrders new HashMap();//动态指定属性字段对应的排序顺序true表示降序false表示升序//此处可以根据业务传具体字段的具体排序方式此处测试就先写死sortOrders.put(name,false);sortOrders.put(age,true);// 构建Comparator链ComparatorJSONObject comparator null;for (int i 0; i sortProperties.size(); i) {final int propertyIndex i;ComparatorJSONObject propertyComparator Comparator.comparing((JSONObject o) - o.getString(sortProperties.get(propertyIndex)),String.CASE_INSENSITIVE_ORDER);if (sortOrders.get(sortProperties.get(propertyIndex))) {propertyComparator propertyComparator.reversed();}if (comparator null) {comparator propertyComparator;} else {comparator comparator.thenComparing(propertyComparator);}}Collections.sort(jsonList, comparator);// 输出排序后的结果for (JSONObject json : jsonList) {System.out.println(json.toString());}} 按名字升序按年龄降序 输出结果 {name:Alice,id:2,age:30} {name:Alice,id:1,age:25} {name:Bob,id:3,age:20} 在上述代码中首先创建了一个包含多个JSONObject对象的List。然后使用sortProperties来动态指定要排序的属性字段使用sortOrders来动态指定属性字段对应的排序顺序。 在使用for循环遍历sortProperties列表中的属性字段并根据属性字段在列表中的索引创建一个新的Comparator。在Lambda表达式中通过o.get(sortProperties.get(propertyIndex))来获取属性字段的值。根据sortOrders列表中的值如果需要降序排序则使用.reversed()方法进行反转。 通过循环构建的多个Comparator通过thenComparing方法链将它们连接在一起生成一个能够实现多个属性字段动态排序的Comparator。 注意上述代码中假设属性字段具有相同的类型。如果属性字段有不同的数据类型可能需要使用适当的比较器来提取和比较属性字段的值即要注意从jsonObject中取对应值的时候是使用getString()还是getInteger()等其它方法。
http://www.zqtcl.cn/news/984513/

相关文章:

  • 深圳网站建设新闻网站建设营销的企业
  • 建筑设计网站软件排名工具
  • wordpress theme珠宝最适合seo的网站源码
  • 建设工程规划许可证查询网站畜牧业网站模板
  • 做网站大概要多少钱页面网站缓存如何做
  • 家电网站建设需求分析朔州网络推广
  • 陕西交通建设集团网站体检网络营销中自建网站
  • 做游戏的php网站有哪些微信商城是什么
  • wordpress memcached redux深圳网站优化方法
  • 移动商城 网站建设方法方式韩国导航地图app
  • 企业网站源码是什么瑞安企业做网站
  • 佛山深圳建网站wordpress 段代码
  • 网站备案 强制仿牌网站容易被攻击吗
  • 网站做访问追踪js特效演示网站
  • 建设网站女装名字大全宝宝投票网站怎么做
  • 江苏省建设厅网站首页天津百度网站排名优化
  • 织梦网络设计工作室网站模板镇江市精神文明建设网站
  • 网站管理工具装修公司设计软件有哪些
  • 招标网站的服务费怎么做分录什么网站做玩具的比较多
  • 青海省住房建设厅网站WordPress主题启用出现错误
  • 自己怎么建网站网站的seo 如何优化
  • 博客网站模板下载如何自学美工
  • 哪个免费建站好专业seo要多少钱
  • 做3d建模贴图找哪个网站珠海建设网站公司简介
  • 网站开发过程前端后端qq刷赞网站咋做
  • 湘潭高新区建设局网站旅游做攻略的网站有哪些
  • wordpress网站云备份网站模块插件是怎么做的
  • 郑州市城乡建设规划网站深圳十佳设计公司排名
  • 上海建设项目环保验收公示网站两新支部网站建设
  • 网站开发移动端网络系统软件应用与维护