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

Collections.sort()

Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能;如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的。
compare(a,b)方法:根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true。

Collections.sort(list, new PriceComparator());的第二个参数返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对list进行排序。

Collections.sort(hblist,new Comparator<Map<String,Object>>(){
                        public int compare(Map<String, Object> o1,
                                Map<String, Object> o2) {
                            if(o1.get("sssd").equals(o2.get("sssd"))){
                                //若两个航标都是未逾期的
                  //比o1和o2中属性的值,然后对其需要按照什么排序的字段进行比较, if(String.valueOf(o1.get("yqsj")).contains("后逾期")&&String.valueOf(o2.get("yqsj")).contains("后逾期")){ if(Double.parseDouble(String.valueOf(o1.get("mmcount")))>Double.parseDouble(String.valueOf(o2.get("mmcount")))){ return 1; }else if(Double.parseDouble(String.valueOf(o1.get("mmcount")))==Double.parseDouble(String.valueOf(o2.get("mmcount")))){ return 0; }else{ return -1; } } //若两个航标都是逾期的 if(!String.valueOf(o1.get("yqsj")).contains("后逾期")&&!String.valueOf(o2.get("yqsj")).contains("后逾期")){ if(Double.parseDouble(String.valueOf(o1.get("mmcount")))>Double.parseDouble(String.valueOf(o2.get("mmcount")))){ return -1; }else if(Double.parseDouble(String.valueOf(o1.get("mmcount")))==Double.parseDouble(String.valueOf(o2.get("mmcount")))){ return 0; }else{ return -1; } } //若第一个为逾期,第二个为未逾期的 if(!String.valueOf(o1.get("yqsj")).contains("后逾期")&&String.valueOf(o2.get("yqsj")).contains("后逾期")){ return -1; } //若第一个为未逾期,第二个为逾期的 if(String.valueOf(o1.get("yqsj")).contains("后逾期")&&!String.valueOf(o2.get("yqsj")).contains("后逾期")){ return 1; } } return 0; } } );

 

转载于:https://www.cnblogs.com/sily-boy/p/5413026.html

相关文章:

  • 更新-解决linux oracle shell上下箭调用历史命令
  • robotframework笔记19
  • 科学家提出记忆形成新解 大脑玩的拼图游戏
  • Spring Boot文档阅读
  • 网站性能提高实战经验点滴记录
  • Effective C++学习笔记 chapter 1
  • ipmi对于统一硬件管理的意义
  • 微信JS-SDK应用DEMO
  • Javascript 页面刷新
  • unix编程艺术中的17点编程原则--设计开发者的至高准则
  • Intel系列CPU的流水线技术的发展
  • 实验二 作业调度模拟程序
  • Spring源码学习(二)------ AOP
  • 2,3,4,11章
  • 职场官话
  • hexo+github搭建个人博客
  • Android单元测试 - 几个重要问题
  • Angular 响应式表单 基础例子
  • chrome扩展demo1-小时钟
  •  D - 粉碎叛乱F - 其他起义
  • Django 博客开发教程 16 - 统计文章阅读量
  • E-HPC支持多队列管理和自动伸缩
  • Javascript编码规范
  • Less 日常用法
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • vue-cli在webpack的配置文件探究
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • vue的全局变量和全局拦截请求器
  • vue脚手架vue-cli
  • vue自定义指令实现v-tap插件
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 多线程事务回滚
  • 构造函数(constructor)与原型链(prototype)关系
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 白色的风信子
  • 选择阿里云数据库HBase版十大理由
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (JS基础)String 类型
  • (分布式缓存)Redis哨兵
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (数据结构)顺序表的定义
  • (四) 虚拟摄像头vivi体验
  • (学习日记)2024.01.09
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)关于多人操作数据的处理策略
  • (轉)JSON.stringify 语法实例讲解
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • //解决validator验证插件多个name相同只验证第一的问题